Android M检测权限对话框是否可见

时间:2015-12-12 03:14:07

标签: android android-permissions android-6.0-marshmallow

如何以编程方式确定用户是否可以看到权限对话框,以便我知道在这种情况下该怎么做?

2 个答案:

答案 0 :(得分:2)

权限对话框是一个放在活动堆栈顶部的活动。因此,当您调用requestPermission()方法Activity实现时,要求PackageManager构建将启动此活动对话框的意图。此意图包含ACTION_REQUEST_PERMISSIONS action

您可能需要侦听活动堆栈更改并检查活动意图是否有ACTION_REQUEST_PERMISSIONS操作。我不确定获得正在运行的任务是否会列出这个活动,因为我自己没有尝试过,只是为了让你去。

答案 1 :(得分:1)

@Override
protected void onStart() {
    super.onStart();
        ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
        ComponentName cn = am.getRunningTasks(1).get(0).topActivity;
        if ("com.android.packageinstaller.permission.ui.GrantPermissionsActivity".equals(cn.getClassName())){
            //permission dialog is displayed
        }
}`

`