适用于Android 5三星设备的Android使用访问权限是什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (36)

我的应用程序会检查设备是否使用Android 5,如果是,则为用户提供打开设置屏幕以启用使用访问的可能性:

Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS);
                    startActivityForResult(intent, 12345);

问题出现在我尝试在运行Android 5的三星设备中执行此操作时...执行上面显示的行时出现此错误:

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.settings.USAGE_ACCESS_SETTINGS }
            at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1801)
            at android.app.Instrumentation.execStartActivity(Instrumentation.java:1499)
            at android.app.Activity.startActivityForResult(Activity.java:3913)

看起来Settings.ACTION_USAGE_ACCESS_SETTINGS动作还没有实现,这很奇怪,因为如果你去设置选项来启用应用程序来访问这个使用统计信息。

提问于
用户回答回答于

这个错误似乎存在于某些三星机型中,以避免应用程序崩溃,也许你可​​以检查您的意图是否可以处理:

PackageManager packageManager = getActivity().getPackageManager();
if (intent.resolveActivity(packageManager) != null) {
    startActivity(intent);
} else {
    Toast.makeText(getBaseContext(), "Please open settings, your model can't be forced to open it", Toast.LENGTH_LONG).show();
}

扫码关注云+社区