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

新手上路,请多包涵

我对新的 Android 6.0 (Marshmallow) 版本有疑问。

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

Android M 权限屏幕

可以使用以下代码在设置中显示应用程序的“应用程序信息”屏幕:

 startActivity(
    new Intent(
        android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
        Uri.fromParts("package", getPackageName(), null)
    )
);

是否有直接打开应用程序的“应用程序权限”屏幕的类似解决方案?

我已经对此进行了一些研究,但我无法找到解决方案。

原文由 Frederik Schweiger 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 399
1 个回答

在科特林

    /*
*
* To open app notification permission screen instead of setting
* */
fun Context.openAppNotificationSettings() {
    val intent = Intent().apply {
        when {
            Build.VERSION.SDK_INT >= Build.VERSION_CODES.O -> {
                action = Settings.ACTION_APP_NOTIFICATION_SETTINGS
                putExtra(Settings.EXTRA_APP_PACKAGE, packageName)
            }
            else -> {
                action = Settings.ACTION_APPLICATION_DETAILS_SETTINGS
                addCategory(Intent.CATEGORY_DEFAULT)
                data = Uri.parse("package:" + packageName)
            }
        }
    }
    startActivity(intent)
}

以上是经过测试和工作的代码,希望对您有所帮助。

原文由 Yogendra 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题