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

标签 android android-8.0-oreo

list :

<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
<uses-permission android:name="android.permission.ACTION_MANAGE_OVERLAY_PERMISSION" />

代码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);
        }
    }

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

安卓版本:8.0.0

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

最佳答案

问题出在 Android Oreo 本身。

在我安装安全补丁后它就消失了。

解决方案:安装最新的安全补丁。

关于android - Settings.canDrawOverlays(context) 在 Android Oreo 上返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46187625/

相关文章:

android - ionic /Android 8+ : Audio stops playing after about 5 mins when screen is locked

android - 从android CallLog获取手机运营商

android - 如何在没有用户交互的情况下在 Android 上以编程方式安装 CA 证书

android - 在 Android 中旋转 MapView

android - 如何使用 Dagger 2 以最少的样板访问 ViewModel 中的 Arguments/Extras Bundle?

android - Samsung Oreo(8.0.0) - 没有这样的视频查询栏

android - Oreo,带有 PendingIntent 的 BLE 扫描仪 startScan 在三星设备上不工作

android - 将带有 url 的对象写入 firebase 数据库

java - android oreo 的后台服务

android - 在 Oreo (8.0.0+) (API 26+) 中,如何在应用程序处于后台或终止时获取位置服务更新