Android11权限管理,Android 11 中的权限更新
在 Android?11 中,用戶能夠針對(duì)位置信息、麥克風(fēng)和攝像頭指定更精細(xì)的權(quán)限。此外,如果以 Android?11 或更高版本為目標(biāo)平臺(tái)的應(yīng)用在一段時(shí)間內(nèi)未使用,系統(tǒng)就會(huì)重置這些應(yīng)用的權(quán)限。如果應(yīng)用使用系統(tǒng)提醒窗口或讀取與電話號(hào)碼相關(guān)的信息,可能需要更新它們聲明的權(quán)限。
單次授權(quán)
從 Android?11 開始,每當(dāng)應(yīng)用請(qǐng)求與位置信息、麥克風(fēng)或攝像頭相關(guān)的權(quán)限時(shí),面向用戶的權(quán)限對(duì)話框會(huì)包含僅限這一次選項(xiàng)。如果用戶在對(duì)話框中選擇此選項(xiàng),系統(tǒng)會(huì)向應(yīng)用授予臨時(shí)的單次授權(quán)。
詳細(xì)了解系統(tǒng)如何處理單次授權(quán)。
注意:如果應(yīng)用在請(qǐng)求運(yùn)行時(shí)權(quán)限時(shí)已遵循最佳做法,您無需更改應(yīng)用即可支持單次授權(quán)。
自動(dòng)重置未使用的應(yīng)用的權(quán)限
如果應(yīng)用以 Android?11 或更高版本為目標(biāo)平臺(tái)并且數(shù)月未使用,系統(tǒng)會(huì)通過自動(dòng)重置用戶已授予應(yīng)用的運(yùn)行時(shí)敏感權(quán)限來保護(hù)用戶數(shù)據(jù)。此操作與用戶在系統(tǒng)設(shè)置中查看權(quán)限并將應(yīng)用的訪問權(quán)限級(jí)別更改為拒絕的做法效果一樣。如果應(yīng)用遵循了有關(guān)在運(yùn)行時(shí)請(qǐng)求權(quán)限的最佳做法,那么您不必對(duì)應(yīng)用進(jìn)行任何更改。這是因?yàn)?#xff0c;當(dāng)用戶與應(yīng)用中的功能互動(dòng)時(shí),您應(yīng)該會(huì)驗(yàn)證相關(guān)功能是否具有所需權(quán)限。
注意:系統(tǒng)僅重置運(yùn)行時(shí)權(quán)限,在請(qǐng)求這些權(quán)限時(shí),系統(tǒng)會(huì)向用戶顯示運(yùn)行時(shí)提示。
權(quán)限對(duì)話框的可見性
從 Android?11 開始,在應(yīng)用安裝到設(shè)備上后,如果用戶在使用過程中多次針對(duì)某項(xiàng)特定的權(quán)限點(diǎn)按拒絕,那么在您的應(yīng)用再次請(qǐng)求該權(quán)限時(shí),用戶將不會(huì)看到系統(tǒng)權(quán)限對(duì)話框。該操作表示用戶希望“不再詢問”。在之前的版本中,除非用戶先前已選中“不再詢問”對(duì)話框或選項(xiàng),否則每當(dāng)您的應(yīng)用請(qǐng)求權(quán)限時(shí),用戶都會(huì)看到系統(tǒng)權(quán)限對(duì)話框。Android 11 中的這一行為變更旨在避免重復(fù)請(qǐng)求用戶已選擇拒絕的權(quán)限。
注意:如果您的應(yīng)用已遵循與權(quán)限相關(guān)的最佳做法,您無需更改您的應(yīng)用即可支持此行為變更。
詳細(xì)了解如何在應(yīng)用中處理權(quán)限請(qǐng)求遭拒情況。
系統(tǒng)提醒窗口變更
在 Android?11 中,向應(yīng)用授予 SYSTEM_ALERT_WINDOW 權(quán)限的方式發(fā)生了一些變更。這些變更可以讓權(quán)限的授予更有目的性,從而達(dá)到保護(hù)用戶的目的。
根據(jù)請(qǐng)求自動(dòng)向某些應(yīng)用授予 SYSTEM_ALERT_WINDOW 權(quán)限
系統(tǒng)會(huì)根據(jù)請(qǐng)求自動(dòng)向某些類型的應(yīng)用授予 SYSTEM_ALERT_WINDOW 權(quán)限:
系統(tǒng)會(huì)自動(dòng)向具有 ROLE_CALL_SCREENING 且請(qǐng)求 SYSTEM_ALERT_WINDOW 的所有應(yīng)用授予該權(quán)限。如果應(yīng)用失去 ROLE_CALL_SCREENING,就會(huì)失去該權(quán)限。
系統(tǒng)會(huì)自動(dòng)向通過 MediaProjection 截取屏幕且請(qǐng)求 SYSTEM_ALERT_WINDOW 的所有應(yīng)用授予該權(quán)限,除非用戶已明確拒絕向應(yīng)用授予該權(quán)限。當(dāng)應(yīng)用停止截取屏幕時(shí),就會(huì)失去該權(quán)限。此用例主要用于游戲直播應(yīng)用。
這些應(yīng)用無需發(fā)送 ACTION_MANAGE_OVERLAY_PERMISSION 以獲取 SYSTEM_ALERT_WINDOW 權(quán)限,它們只需直接請(qǐng)求 SYSTEM_ALERT_WINDOW 即可。
MANAGE_OVERLAY_PERMISSION intent 始終會(huì)將用戶轉(zhuǎn)至系統(tǒng)權(quán)限屏幕
從 Android?11 開始,ACTION_MANAGE_OVERLAY_PERMISSION intent 始終會(huì)將用戶轉(zhuǎn)至頂級(jí)設(shè)置屏幕,用戶可在其中授予或撤消應(yīng)用的 SYSTEM_ALERT_WINDOW 權(quán)限。intent 中的任何 package: 數(shù)據(jù)都會(huì)被忽略。
在更低版本的 Android 中,ACTION_MANAGE_OVERLAY_PERMISSION intent 可以指定一個(gè)軟件包,它會(huì)將用戶轉(zhuǎn)至應(yīng)用專用屏幕以管理權(quán)限。從 Android?11 開始將不再支持此功能,而是必須由用戶先選擇要授予或撤消哪些應(yīng)用的權(quán)限。此變更可以讓權(quán)限的授予更有目的性,從而達(dá)到保護(hù)用戶的目的。
電話號(hào)碼
Android?11 更改了您的應(yīng)用在讀取電話號(hào)碼時(shí)使用的與電話相關(guān)的權(quán)限。
如果您的應(yīng)用以 Android?11 或更高版本為目標(biāo)平臺(tái),并且需要訪問以下列表中顯示的電話號(hào)碼 API,則必須請(qǐng)求 READ_PHONE_NUMBERS 權(quán)限,而不是 READ_PHONE_STATE 權(quán)限。
如果您的應(yīng)用聲明 READ_PHONE_STATE 以調(diào)用前面列表中的方法以外的方法,您可以繼續(xù)在所有 Android 版本中請(qǐng)求 READ_PHONE_STATE。不過,如果您僅對(duì)前面列表中的方法使用 READ_PHONE_STATE 權(quán)限,請(qǐng)按以下方式更新您的清單文件:
更改 READ_PHONE_STATE 的聲明,以使您的應(yīng)用僅在 Android 10(API 級(jí)別 29)及更低版本中使用該權(quán)限。
添加 READ_PHONE_NUMBERS 權(quán)限。
以下清單聲明代碼段演示了此過程:
android:maxSdkVersion="29" />
總結(jié)
以上是生活随笔為你收集整理的Android11权限管理,Android 11 中的权限更新的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UE4 Pak文件操作
- 下一篇: android sina oauth2.