请求PACKAGE_USAGE_STATS的权限

时间:2016-04-24 08:00:46

标签: java android android-permissions

我想检查用户是否已授予我的应用程序使用 PACKAGE_USAGE_STATS 的权限。我目前正在做的是:

Application.Current.Resources.MergedDictionaries[0] = 
    new ResourceDictionary() { Source = new Uri("Themes/LightTheme.xaml", UriKind.Relative) };

我已经按照Android开发人员部分的说明实现了requestPermissions,它对 ACCESS_FINE_LOCATION 工作正常。

但是,当我的应用程序请求权限时,它只显示 ACCESS_FINE_LOCATION 权限而不是 PACKAGE_USAGE_STATS 可以解释原因吗?如果是这样,给我一个解决方案,我该怎么做?

我希望这两个权限都显示在如下对话框中: enter image description here

1 个答案:

答案 0 :(得分:7)

不幸的是,您无法像运行危险权限那样在运行时请求PACKAGE_USAGE_STATS。用户需要通过“设置”应用程序手动授予权限,如UsageStatsManager documentation中所述:

  

此API需要权限   android.permission.PACKAGE_USAGE_STATS,这是一个系统级的   许可,不会授予第三方应用。然而,   声明权限意味着有意使用API​​和用户   设备可以通过“设置”应用程序授予权限。

您可以使用以下代码直接打开Apps with usage access活动:

startActivity(new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS));

Here您可以找到一个基本应用示例,其中显示了如何使用应用使用情况统计信息API。