2

Android 11(目标 30)引入了包可见性限制

他们添加了允许绕过这些限制的 QUERY_ALL_PACKAGES,并且只允许特定的应用程序使用它。

此权限的保护级别是 NORMAL,所以我想知道如何限制此权限。

在文档中,他们说:

在即将发布的政策更新中,请寻找 Google Play 为需要 QUERY_ALL_PACKAGES 权限的应用提供指南。

有谁知道在哪里可以找到此政策更新?

4

1 回答 1

0

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()以便在打开使用数据访问并且用户导航回应用程序时,再次调用该方法以确认更改。

于 2021-10-16T16:59:56.787 回答