Settings.canDrawOverlays(context)在Android Oreo上返回false [英] Settings.canDrawOverlays(context) returns false on Android Oreo
问题描述
清单:
<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
<uses-permission android:name="android.permission.ACTION_MANAGE_OVERLAY_PERMISSION" />
代码activity.onCreate():
Code 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之前没有发生.
Problem: Settings.canDrawOverlays(this) returns false even so the permission has been already granted. Hasn't happened before update Pixel to Oreo.
Android版本:8.0.0
Android version: 8.0.0
我尝试将构建工具更新为:26.0.1,将target和compileSdk更新为26. 它在第一次启动时有所帮助:切换后返回true,但是下次启动应用程序时,它将再次返回false.
I've tried to update build tools: to 26.0.1 and target and compileSdk to 26. It helped on the first launch :after toggling on it returns true, but next time I launch application it returns false again.
推荐答案
问题出在Android Oreo本身.
The problem was in Android Oreo itself.
我安装了安全补丁后,它消失了.
After I've installed security patch it disappeared.
解决方案::安装最新的安全补丁.
Solution: Install latest security patch.
这篇关于Settings.canDrawOverlays(context)在Android Oreo上返回false的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!