使用Action Settings.ACTION_MANAGE_OVERLAY_PERMISSION 启动隐式Intent 使用 “package:” + getPackageName() 携带App的包名信息 使用 Settings.canDrawOverlays 方法判断授权结果 private static final int REQUEST_CODE = 1;p
private static final int REQUEST_CODE = 1;
private void requestAlertWindowPermission() {
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
intent.setData(Uri.parse("package:" + getPackageName()));
startActivityForResult(intent, REQUEST_CODE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE) {
if (Settings.canDrawOverlays(this)) {
Log.i(LOGTAG, "onActivityResult granted");
}
}
}
