使用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"); } } }