簡體   English   中英

Android - 將targetSdkVersion設置為22以避免運行時權限,有哪些潛在問題?

[英]Android - set targetSdkVersion to 22 to avoid runtime permissions, what are the potential problems?

有人可以總結將targetSdkVersion設置為22以避免處理運行時權限的缺點嗎?

在閱讀了Google文檔以及其他一些Stack Overflow帖子之后,我發現的唯一不足之處是用戶可以在安裝時授予權限,然后進入他們的操作系統設置並撤銷該特定應用的特定權限,然后再次運行應用程序。 然而,從一些例子中我發現在代碼中處理這並不困難。

這是否是使用targetSdkVersion 22在安裝時強制權限的唯一缺點? 這些事情會在未來幾年保持這種狀態嗎?

另外,例如,如果我在build.gradle文件中使用這些設置:

compileSdkVersion 24
buildToolsVersion "24.0.1"
minSdkVersion 19
targetSdkVersion 22

我仍然可以在應用程序中訪問API 23和24功能,還是僅限於22及更早版本?

在有人回答“最佳做法是不按照谷歌推薦的方式在運行時根據需要執行此操作”時,是的,我當然知道這一點。 是的,我也知道有些例子試圖提供鍋爐板代碼以詢問運行時權限,例如:

https://github.com/googlesamples/easypermissions

但是至少有兩種情況我可以想到在安裝時請求權限並且如果未授予權限則不安裝應用程序是非常有利的:

1)假設我報告的那個人在工作周的一半時間問:“你可以把星期五會議的概念驗證Android應用程序放在一起,這個會議會讓XYZ顯示我們當天有一些訪問者嗎?” 如果我必須拼湊一個快速的alpha版本的應用程序,我只有幾天時間來完成它,並且將基本功能放在一起需要很長時間,而應用程序將需要4​​個權限,它會要在安裝時為alpha版本要求所有權限要好得多,所以我有時間花在應用程序功能上。 然后,如果我繼續操作,當我將應用程序移至測試版然后再移至最終版時,根據需要在運行時逐個更改權限請求。

2)某些應用程序絕對需要某些權限才能使用。 例如,如果我正在編寫一個OpenCV應用程序,該應用程序從相機中獲取圖像,然后根據圖像中的內容做什么,那么最好不要讓用戶開始安裝這樣的應用程序。不願意授予相機許可。

我真的希望Google在安裝時作為選項請求/要求權限,並提供在運行時請求權限的選項。 是否有任何負面的開發人員反饋,只能決定是否可以在運行時請求權限? 谷歌是否可能在安裝時或未來版本的運行時允許許可請求,在這種情況下,我可以在過渡期間簡單地使用targetSdkVersion 22選項?

這是否是使用targetSdkVersion 22在安裝時強制權限的唯一缺點?

targetSdkVersion 。例如,除非您的targetSdkVersion為24或更高,否則Android 7.0+設備用戶在嘗試以分屏模式使用您的應用時會收到“此應用可能不支持分屏” Toast

此外,關於運行時權限,請記住,22或更低的targetSdkVersion意味着將在安裝時提示用戶輸入您請求的所有權限。 您似乎認為這是積極的。 潛在用戶可能不同意。 如果在安裝時請求各種權限的App A和沒有安裝時的App B之間做出選擇,用戶將傾向於選擇應用B,沒有強烈的理由去使用App A.隨着時間的推移,隨着Android 6.0+推出更多在更多用戶中,在安裝時請求權限的應用程序將被視為未維護或寫得不好,因為用戶預計不必事先同意權限。

這些事情會在未來幾年保持這種狀態嗎?

沒有。

我還可以在應用中訪問API 23和24功能嗎?

是的,雖然有些人可能會因為你的targetSdkVersion而表現不同。

谷歌是否可能在安裝時或未來版本的運行時允許許可請求

一切皆有可能。 一般來說,谷歌不討論這樣的未來計划。

https://android-developers.googleblog.com/2017/12/improving-app-security-and-performance.html中所述

在2018年下半年,Play將要求新的應用和應用更新定位到最近的Android API級別。 這將是2018年8月的新應用程序以及2018年11月對現有應用程序的更新所必需的。這是為了確保應用程序構建在針對安全性和性能優化的最新API上。

因此,我們必須盡快定位最新的SDK版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM