【问题标题】:Open App Permissions on Android programmatically?以编程方式在 Android 上打开应用程序权限?
【发布时间】:2026-02-20 15:30:01
【问题描述】:

我想通过列表从系统向用户显示所有应用程序和权限。我知道这个设置可用于 API >= 23 在不同的位置。

对于 API >= 26 开启:

设置/应用和通知/高级/应用权限

对于 API >= 23,它处于打开状态:

设置/应用程序/配置应用程序(设置菜单项)/应用程序权限

有没有办法使用意图打开应用权限屏幕?

【问题讨论】:

  • @NileshRathod 与那个无关,请检查我附在问题上的屏幕截图。我不想打开我的应用设置,我想向用户打开“应用权限”屏幕。

标签: android android-intent


【解决方案1】:

也许你会很幸运,有人可以证明我错了,但在最新版本的 Android 上,你似乎仅限于应用设置 - 无法通过 Intent 直接访问应用权限。

我认为这与安全和自动化有关,这也符合 Google 在尝试请求权限时显示“检测到覆盖”警告的决定as outlined on this non-Google article

【讨论】:

  • 正如您所提到的,我们似乎无法通过 Intent 直接访问应用程序权限。感谢您的回答。
【解决方案2】:
           if (Build.VERSION.SDK_INT > Build.VERSION_CODES.O) {
                final AlertDialog.Builder adb = new AlertDialog.Builder(this);
                adb.setTitle("Click on ok then app will redirect to app settings then 
                   please click on Other Permissions and  Please Allow All ");
                adb.setPositiveButton("ok", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                       Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
                        Uri uri = Uri.fromParts("package", getPackageName(), null);
                        intent.setData(uri);
                        startActivity(intent);
                    }
                });
                adb.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        finishAffinity();
                        dialogInterface.dismiss();
                    }
                });
                adb.show();
            }

【讨论】:

    最近更新 更多