Android 11(目标 30)引入 Package visibility restrictions .
他们添加了允许绕过这些限制的 QUERY_ALL_PACKAGES,并且只允许特定的应用程序使用它。
此权限的保护级别是 NORMAL,所以我想知道如何限制此权限。
在文档中,他们说:
In an upcoming policy update, look for Google Play to provide guidelines for apps that need the QUERY_ALL_PACKAGES permission.
有谁知道在哪里可以找到此政策更新?
最佳答案
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()
中调用此方法我的 Activity 或 fragment ,以便在打开使用数据访问并且用户导航回应用程序时,再次调用该方法以确认更改。
关于android - QUERY_ALL_PACKAGES 是如何执行的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63813187/