小编Hap*_*Dev的帖子

Settings.canDrawOverlays(context)在Android Oreo上返回false

表现:

<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
<uses-permission android:name="android.permission.ACTION_MANAGE_OVERLAY_PERMISSION" />
Run Code Online (Sandbox Code Playgroud)

代码activity.onCreate():

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && BuildConfig.DEBUG) {
        if (!Settings.canDrawOverlays(this)) {
            Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
                    Uri.parse("package:" + getPackageName()));
            startActivityForResult(intent, OVERLAY_PERMISSION_REQ_CODE);
        }
    }
Run Code Online (Sandbox Code Playgroud)

问题:即使已经授予了权限,Settings.canDrawOverlays(this)也会返回false。在将Pixel更新为Oreo之前没有发生。

Android版本:8.0.0

我尝试将构建工具更新为:26.0.1,将target和compileSdk更新为26。它在首次启动时有所帮助:切换后返回true,但是下次启动应用程序时,它将再次返回false。

android android-8.0-oreo

5
推荐指数
1
解决办法
1430
查看次数

标签 统计

android ×1

android-8.0-oreo ×1