谷歌 Android開發(fā)者博客今天發(fā)文稱,為數(shù)十億臺設備提供權限自動重置功能。
應用通常需要請求某些權限才能正常運行,但在任何給定的設備都有數(shù)十個應用的情況下,要讓之前授予的權限保持最新狀態(tài)可能很困難,特別是在你長時間未使用某個應用時。
谷歌稱,在 Android 11中引入了權限自動重置功能。這項功能有助于保護用戶的隱私: 如果用戶幾個月未使用某應用,該功能就會自動重置此應用的運行時權限,即請求時向用戶顯示提示的權限。2021 年 12 月起,谷歌會將這項功能擴展到數(shù)十億臺設備。該功能將自動在運行 Android 6.0 (API 級別 23) 或更高版本的使用 Google Play 服務的設備上啟用。
權限自動重置功能
http://m.ygpos.cn/uploadfile/2021/1020/20211020141029362G Play 服務
https://developers.google.cn/android
系統(tǒng)將默認為面向 Android 11 (API 級別 30) 或更高版本的應用啟用該功能。不過,用戶可以為面向 API 級別 23 到 29 的應用手動啟用權限自動重置功能。
那么,這對開發(fā)者來說意味著什么呢?
例外
一些應用和權限將自動免于撤消,如企業(yè)使用的活動設備管理員應用,以及由企業(yè)政策固定的權限。
請求用戶停用自動重置
如有需要,開發(fā)者可以請求用戶阻止系統(tǒng)重置其應用的權限。適用于用戶期望應用主要在后臺運行,甚至無需與其互動的情況。您可以查看主要用例:
http://m.ygpos.cn/uploadfile/2021/1020/20211020141032363G align="center">
必要的代碼更改
如果一個應用面向 API 30 及更高版本,并請求用戶停用權限自動重置,那么開發(fā)者需要做一些簡單的代碼更改。如果應用不停用自動重置,則無需進行代碼更改。
注: 此 API 僅適用于 targetSDK 為 API 30 或更高版本的應用,因為僅這些應用具有權限自動重置。如果應用的 targetSDK 為 API 29 或更低版本,則開發(fā)者無需進行任何更改。
下表匯總了新的跨平臺 API (與 Android 11 中發(fā)布的 API 相比):
Android 11
http://m.ygpos.cn/uploadfile/2021/1020/20211020141032365G align="center">
PackageManager.isAutoRevokeWhitelisted()
http://m.ygpos.cn/uploadfile/2021/1020/20211020141033367G API 屬于 Jetpack Core 庫,將于 Jetpack Core v1.7.0 中推出,現(xiàn)已發(fā)布 Beta 版:
http://m.ygpos.cn/uploadfile/2021/1020/20211020141034368G future: ListenableFuture
PackageManagerCompat.getUnusedAppRestrictionsStatus(context)
future.addListener(
{ onResult(future.get()) },
ContextCompat.getMainExecutor(context)
)
fun onResult(RestrictionsStatus: Int) {
when (RestrictionsStatus) {
// Status could not be fetched. Check logs for details.
ERROR -> { }
// Restrictions do not ly to your on this device.
FEATURE_NOT_AVAILABLE -> { }
// Restrictions have been disabled by the user for your .
DISABLED -> { }
// If the user doesn't start your for months, its permissions
// will be revoked and/or it will be hibernated.
// See the API_* constants for details.
API_30_BACKPORT, API_30, API_31 ->
handleRestrictions(RestrictionsStatus)
}
}
fun handleRestrictions(RestrictionsStatus: Int) {
// If your works primarily in the background, you can ask the user
// to disable these restrictions. Check if you have already asked the
// user to disable these restrictions. If not, you can show a message to
// the user explaining why permission auto-reset and Hibernation should be
// disabled. Tell them that they will now be redirected to a page where
// they can disable these features.
Intent intent = IntentCompat.createManageUnusedAppRestrictionsIntent
(context, packageName)
// Must use startActivityForResult(), not startActivity(), even if
// you don't use the result code returned in onActivityResult().
startActivityForResult(intent, REQUEST_CODE)
}
IT之家獲悉,以上邏輯適用于 Android 6.0 到 Android 10,以及 Android 11 和更高版本的設備。只需使用新 API 即可,您無需再調(diào)用 Android 11 的自動重置 API。
與 Android 12中應用休眠功能的兼容
新 API 同樣與 Android 12 (API 級別 31) 中引入的應用休眠功能兼容。休眠是適用于未使用應用的一種新限制。該功能不適用于 Android 12 之前的操作系統(tǒng)版本。
Android 12 (API 級別 31) 中引入的應用休眠功能
https://developer.android.google.cn/about/versions/12/behavior-changes-all
如果權限自動重置和應用休眠都應用于一個應用,則 getUnusedAppRestrictionsStatus () API 將返回 API_31。
發(fā)布時間表
2021 年 9 月 15 日 - 跨平臺自動重置 API 現(xiàn)已進入測試階段 (Jetpack Core 1.7.0 Beta 版庫),所以開發(fā)者現(xiàn)在就可以開始使用這些 API。即使在不支持權限自動重置的設備上,使用這些 API 也是安全的 (API 在這些設備上會返回 FEATURE_NOT_AVAILABLE)。
2021 年 10 月 - 跨平臺自動重置 API 可作為穩(wěn)定的 API 使用 (Jetpack Core 1.7.0)。
2021 年 12 月 - 權限自動重置功能將開始在由 Google Play 服務提供支持并運行 Android 6.0 到 Android 10 之間版本的設備上逐步推廣。在這些設備上,用戶可以前往自動重置設置頁面,針對特定應用啟用/停用自動重置。系統(tǒng)將在設備啟用該功能幾周后開始自動重置未使用應用的權限。
2022 年第 1 季度 - 權限自動重置功能將覆蓋所有運行 Android 6.0 到 Android 10 之間版本的設備。
- 蜜度索驥:以跨模態(tài)檢索技術助力“企宣”向上生長
- 智能標簽如何改變供應鏈和貨物追蹤
- 釋放網(wǎng)絡潛力:適用于家庭和辦公室的終極5端口千兆以太網(wǎng)交換機
- 2025年工業(yè)軟件市場格局:7個關鍵統(tǒng)計數(shù)據(jù)與分析
- 24端口千兆以太網(wǎng)交換機選擇指南
- 如何選擇合適的千兆以太網(wǎng)交換機
- 規(guī)模超40億元!中國聯(lián)通2024年5G核心網(wǎng)集采:華為、中興中標
- 千家早報|蘋果被一韓國電纜公司起訴侵犯無線充電專利;云天勵飛與閃極科技、LOHO聯(lián)合發(fā)布AI智能眼鏡——2024年12月26日
- 普天科技董事兼總裁朱忠芳辭任、沈文明繼任
- 中國電信聯(lián)手地方國資,加碼低空經(jīng)濟
- 國務院辦公廳:將量子科技納入專項債券用作項目資本金范圍
免責聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權或存在不實內(nèi)容時,應及時向本網(wǎng)站提出書面權利通知或不實情況說明,并提供身份證明、權屬證明及詳細侵權或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關文章源頭核實,溝通刪除相關內(nèi)容或斷開相關鏈接。