如何以编程方式确定用户是否可以看到权限对话框,以便我知道在这种情况下该怎么做?
答案 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
}
}`
`