谷歌12月起,数十亿台安卓手机等支持权限自动重置
谷歌 Android开发者博客今天发文称,为数十亿台设备提供权限自动重置功能。
应用通常需要请求某些权限才能正常运行,但在任何给定的设备都有数十个应用的情况下,要让之前授予的权限保持最新状态可能很困难,特别是在你长时间未使用某个应用时。
谷歌称,在 Android 11中引入了权限自动重置功能。这项功能有助于保护用户的隐私: 如果用户几个月未使用某应用,该功能就会自动重置此应用的运行时权限,即请求时向用户显示提示的权限。2021 年 12 月起,谷歌会将这项功能扩展到数十亿台设备。该功能将自动在运行 Android 6.0 (API 级别 23) 或更高版本的使用 Google Play 服务的设备上启用。
权限自动重置功能
https://developer.android.google.cn/about/versions/11/privacy/permissions#auto-reset
运行时权限
https://developer.android.google.cn/guide/topics/permissions/overview#runtime
Google Play 服务
https://developers.google.cn/android
系统将默认为面向 Android 11 (API 级别 30) 或更高版本的应用启用该功能。不过,用户可以为面向 API 级别 23 到 29 的应用手动启用权限自动重置功能。
那么,这对开发者来说意味着什么呢?
例外
一些应用和权限将自动免于撤消,如企业使用的活动设备管理员应用,以及由企业政策固定的权限。
请求用户停用自动重置
如有需要,开发者可以请求用户阻止系统重置其应用的权限。适用于用户期望应用主要在后台运行,甚至无需与其互动的情况。您可以查看主要用例:
https://developer.android.google.cn/training/permissions/requesting#request-disable-auto-reset
比较当前行为与新行为
必要的代码更改
如果一个应用面向 API 30 及更高版本,并请求用户停用权限自动重置,那么开发者需要做一些简单的代码更改。如果应用不停用自动重置,则无需进行代码更改。
注: 此 API 仅适用于 targetSDK 为 API 30 或更高版本的应用,因为仅这些应用具有权限自动重置。如果应用的 targetSDK 为 API 29 或更低版本,则开发者无需进行任何更改。
下表汇总了新的跨平台 API (与 Android 11 中发布的 API 相比):
Android 11
https://developer.android.google.cn/training/permissions/requesting#auto-reset-permissions-unused-apps
PackageManager.isAutoRevokeWhitelisted()
https://developer.android.google.cn/reference/android/content/pm/PackageManager#isAutoRevokeWhitelisted(java.lang.String)
Intent.ACTION_AUTO_REVOKE_PERMISSIONS
https://developer.android.google.cn/reference/android/content/Intent#ACTION_AUTO_REVOKE_PERMISSIONS
这个跨平台 API 属于 Jetpack Core 库,将于 Jetpack Core v1.7.0 中推出,现已发布 Beta 版:
https://developer.android.google.cn/jetpack/androidx/releases/core
一个需要用户禁用自动停用自动重置的逻辑示例:
val 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 即可,您无需再调用 Android 11 的自动重置 API。
与 Android 12 中应用休眠功能的兼容
新 API 同样与 Android 12 (API 级别 31) 中引入的应用休眠功能兼容。休眠是适用于未使用应用的一种新限制。该功能不适用于 Android 12 之前的操作系统版本。
Android 12 (API 级别 31) 中引入的应用休眠功能
https://developer.android.google.cn/about/versions/12/behavior-changes-all
如果权限自动重置和应用休眠都应用于一个应用,则 getUnusedAppRestrictionsStatus () API 将返回 API_31。
发布时间表
2021 年 9 月 15 日 - 跨平台自动重置 API 现已进入测试阶段 (Jetpack Core 1.7.0 Beta 版库),所以开发者现在就可以开始使用这些 API。即使在不支持权限自动重置的设备上,使用这些 API 也是安全的 (API 在这些设备上会返回 FEATURE_NOT_AVAILABLE)。
2021 年 10 月 - 跨平台自动重置 API 可作为稳定的 API 使用 (Jetpack Core 1.7.0)。
2021 年 12 月 - 权限自动重置功能将开始在由 Google Play 服务提供支持并运行 Android 6.0 到 Android 10 之间版本的设备上逐步推广。在这些设备上,用户可以前往自动重置设置页面,针对特定应用启用/停用自动重置。系统将在设备启用该功能几周后开始自动重置未使用应用的权限。
2022 年第 1 季度 - 权限自动重置功能将覆盖所有运行 Android 6.0 到 Android 10 之间版本的设备。
【来源:IT之家】【作者:潇公子】
腾讯投资深圳微远医疗,持股4。2140企查查APP显示,近日,深圳微远医疗科技有限公司发生工商变更,新增股东广西腾讯创业投资有限公司,持股4。2140。同时,公司注册资本由173。16万元人民币增加至189。65万元人
打破欧美日企垄断!东风智新半导体项目投产日前,东风汽车宣布,华中地区首只量产的车规级IGBT模块产品从智新半导体模块封装工厂下线,这是东风自主掌控新能源汽车关键技术核心资源的重要实践,也是东风与中国中车战略合作的第一个硕
三七互娱加入玩游戏救地球联盟积极参与全球气候行动世界人口日来临之际,三七互娱宣布已正式被玩ldquo游戏救地球rdquo联盟(PlayingforthePlanetAlliance,P4P)接纳为企业成员。ldquo游戏救地球r
热门中概股周二收盘涨跌不一搜狐涨超277月14日消息,7月13日美股收盘,热门中概股涨跌不一。其中,腾讯收购搜狗交易获批,搜狐涨超27。同时,拼多多涨幅1。4,阿里巴巴涨幅近2,京东涨幅达4。58,一起教育涨幅达1。4
Zoom正式宣布ZoomApps和新虚拟活动平台快速发展的云视频会议巨头Zoom表示,近期的大量更新,旨在为用户在Zoom会议和桌面体验上带来更深度的协作生产力和娱乐选项。与此同时,新平台还表明了该公司是如何利用其规模和知名度,
重回台积电代工高通骁龙895将采用台积电4nm爆料大神evleaks此前放出了高通骁龙888继任者(代号SM8450)芯片的详细情报。据称,这款旗舰平台将基于4nm工艺打造,然而业界对代工方却众说纷纭。不过大部分人都认可高通明
三星SDS推出Paperless利用区块链解决文件伪造问题信息技术服务提供商三星SDS今天宣布推出一项名为ldquoPaperlessrdquo的全新服务,使用区块链技术解决可证伪性和文件伪造问题。该项服务是三星基于云端的Blockcha
理查德布兰森虽成功进入太空,但维珍银河股价却下跌据外媒报道,虽然维珍银河(VirginGalactic)或许已成功将理查德middot布兰森送入亚轨道空间,但这并不足以提振该公司周一的股价。在投资者认为布兰森的零重力经历不足以抵
谷歌用AAB取代安卓APK华为对鸿蒙无影响日前,谷歌宣布,8月开始,Play商店的应用从。apk格式改为。aab格式。。aab即AndroidAppBundle,优势在于应用体积更小更安全的密钥签名自定义功能模块交付等。消
腾讯留学缴费服务上线,支持数百所院校腾讯金融科技的ldquo微汇款rdquo微信小程序近日正式上线了ldquo留学缴费rdquo功能,支持美国英国加拿大等国家和地区的数百所院校。根据官方的介绍,打开ldquo微汇款r
低功耗电子纸新突破能准确明亮地显示彩色图像从圣地亚哥的建筑外墙到澳大利亚的路标,电子纸以一些非常有趣的应用方式超越了Kindle进入我们的日常生活。瑞典科技大学的科学团队正努力扩大电子纸技术的应用范围,通过倒置新设计提供了