Android M检测权限对话框是否可见
如何以编程方式确定用户是否可以看到权限对话框,以便我知道在这种情况下该怎么办?权限对话框是放置在活动堆栈顶部的活动。因此,当您调用Android M检测权限对话框是否可见,android,android-permissions,android-6.0-marshmallow,Android,Android Permissions,Android 6.0 Marshmallow,如何以编程方式确定用户是否可以看到权限对话框,以便我知道在这种情况下该怎么办?权限对话框是放置在活动堆栈顶部的活动。因此,当您调用requestPermission()方法Activity时,实现会要求PackageManager生成将启动此活动对话框的意图。此意图具有操作\u请求\u权限 您可能需要侦听活动堆栈更改,并检查活动意图是否具有ACTION\u REQUEST\u权限ACTION。我不确定获取运行任务是否会给您列出此活动,因为我自己没有尝试过,只是为了让您继续 @Override p
requestPermission()
方法Activity
时,实现会要求PackageManager
生成将启动此活动对话框的意图。此意图具有操作\u请求\u权限
您可能需要侦听活动堆栈更改,并检查活动意图是否具有ACTION\u REQUEST\u权限
ACTION。我不确定获取运行任务是否会给您列出此活动,因为我自己没有尝试过,只是为了让您继续
@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
}
}`
`AFAIK没有干净的方法来检测权限对话框是否对屏幕可见。通过hack,你可以