相关疑难解决方法(0)

如何以编程方式在Android Marshmallow上打开特定应用程序的权限屏幕?

我对新的Android Marshmallow版本有疑问:

是否可以通过Intent或类似方式显示特定应用程序的权限屏幕?

Android M权限屏幕

可以使用以下代码显示应用程序设置 - 是否有直接打开权限屏幕的模拟解决方案?

startActivity(new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
Uri.fromParts("package", getPackageName(), null)));
Run Code Online (Sandbox Code Playgroud)

我已经对此做过一些研究,但我无法找到合适的解决方案 - 我将非常感谢您的帮助!

android android-permissions android-6.0-marshmallow

306
推荐指数
11
解决办法
13万
查看次数

检查我的应用程序是否启用了使用权限

我正在使用新的UsageStatsManagerAPI来获取 Android 5.0 Lollipop中的当前前台应用程序.要使用此API,用户必须在Settings->Security->Apps with usage access屏幕中启用该应用程序.

我使用此Intent将用户直接发送到此屏幕:


startActivity(new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS));
Run Code Online (Sandbox Code Playgroud)

现在,我想验证用户启用我的应用程序.我想这样做,就像我验证用户启用我的应用程序使用NotificationListenerService但我不知道什么是String键,如果它甚至存在.


Settings.Secure.getString(contentResolver, "enabled_notification_listeners");
// Tried Settings.ACTION_USAGE_ACCESS_SETTINGS as key but it returns null

第二种方法是查询使用情况统计信息并检查它是否返回结果(当应用程序未启用时返回一个空数组)并且它大部分时间都有效,但有时即使我的应用程序启用也会返回0结果.


UsageStatsManager mUsageStatsManager = (UsageStatsManager) context.getSystemService("usagestats");
long time = System.currentTimeMillis();
List stats = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 1000 * 10, time);

if (stats == null || stats.isEmpty()) {
    // Usage access is not enabled
}
Run Code Online (Sandbox Code Playgroud)

有没有办法检查我的应用程序是否启用了使用权限?

android usage-statistics

25
推荐指数
4
解决办法
1万
查看次数