Android 11(目标 30)引入了包可见性限制。
他们添加了允许绕过这些限制的 QUERY_ALL_PACKAGES,并且只允许特定的应用程序使用它。
此权限的保护级别是 NORMAL,所以我想知道如何限制此权限。
在文档中,他们说:
在即将发布的政策更新中,请寻找 Google Play 为需要 QUERY_ALL_PACKAGES 权限的应用提供指南。
有谁知道在哪里可以找到此政策更新?
Android 11(目标 30)引入了包可见性限制。
他们添加了允许绕过这些限制的 QUERY_ALL_PACKAGES,并且只允许特定的应用程序使用它。
此权限的保护级别是 NORMAL,所以我想知道如何限制此权限。
在文档中,他们说:
在即将发布的政策更新中,请寻找 Google Play 为需要 QUERY_ALL_PACKAGES 权限的应用提供指南。
有谁知道在哪里可以找到此政策更新?
QUERY_ALL_PACKAGES 权限具有正常的保护级别,因此添加时不会引发异常。
我强制执行此权限的方式是调用queryUsageStats
实例UsageStatsManager
。如果它返回一个空列表,我会通知用户在手机设置中打开使用数据访问。
private fun requestPackagePermission() {
val stats: List<UsageStats> = usageStatsManager
.queryUsageStats(
UsageStatsManager.INTERVAL_BEST,
0,
System.currentTimeMillis()
)
val isEmpty = stats.isEmpty()
if (isEmpty) {
// notify user before opening app settings
startActivity(Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS))
} else {
// carry out your work
}
}
我在我的活动或片段中调用此方法,onResume()
以便在打开使用数据访问并且用户导航回应用程序时,再次调用该方法以确认更改。