显示权限对话框时,canDrawOverlays返回false

时间:2018-12-21 22:17:55

标签: android android-permissions

我在Activity的onCreate方法中请求覆盖权限。

if (Build.VERSION.SDK_INT >= 23 && !Settings.canDrawOverlays(this)) {
     // Get permission to show redbox in dev builds.
    Intent serviceIntent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
    startActivity(serviceIntent);
    GeneralLog.w(ReactConstants.TAG, REDBOX_PERMISSION_MESSAGE);
    Toast.makeText(this, REDBOX_PERMISSION_MESSAGE, Toast.LENGTH_LONG).show();
}

大多数情况下,此方法运行良好,但是当我调用Activity#requestPermissions后打开权限对话框时(假设我正在请求SMS权限,这会弹出一个对话框),然后按此精确旋转设备当权限对话框显示在屏幕上的那一刻,将重新创建活动,但是这次canDrawOverlays返回false并启动意图以请求覆盖权限,即使用户已经授予了覆盖权限。

这会在任何API> = 23的设备中发生

0 个答案:

没有答案