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/