我碰到了一个非常奇怪的问题,工作室编译除了一个以外的所有清单权限:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
在其他编译器中测试 - 成功编译的权限。 你怎么能解决这个真正奇怪的问题? 我的完整权限列表:
<uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
答案 0 :(得分:0)
如果应用针对API级别23或更高级别,则应用用户必须通过权限管理屏幕向应用明确授予此权限。该应用通过发送动作ACTION_MANAGE_OVERLAY_PERMISSION来请求用户的批准。该应用可以通过调用Settings.canDrawOverlays()来检查它是否具有此授权。
答案 1 :(得分:0)
我通过修改build.gradle文件解决了这个问题。 我将targetSdkVersion从26改为19(任何版本<19) 但我不确定这是否是最好的解决方案
答案 2 :(得分:0)
您不能使用SYSTEM_ALERT_WINDOW权限,因为它具有签名保护级别。
参见signature protection level - clarifying 并查看https://developer.android.com/guide/topics/manifest/permission-element.html
此外,您不能使用BIND_ACCESSIBILITY_SERVICE权限,它也具有签名保护级别。