Android studio不会在清单中编译权限

时间:2018-02-05 14:49:51

标签: android android-studio

我碰到了一个非常奇怪的问题,工作室编译除了一个以外的所有清单权限:

<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" />

3 个答案:

答案 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权限,它也具有签名保护级别。