【发布时间】:2017-11-26 18:28:45
【问题描述】:
我有一个应用程序,它有一个小部件,允许聊天作为浮动小部件使用,有点像 FB。它可以在较低版本的 Android 上完美运行,但由于某种原因,它无法在 Android 8.0 上运行。我已通读权限更改,并在我的 AndroidManifest.xml 文件中声明了这两个权限...
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.TYPE_APPLICATION_OVERLAY"/>
然后在我的活动中,我正在检查权限,如果被授予,它将尝试添加新视图...
if(Settings.canDrawOverlays(this)) {
initializeChatHeadsView();
}
initializeChatHeadsView,只是将布局添加到窗口。我已经启用了权限,如果我进入设备上的设置,我什至可以看到它已启用,我可以在“显示在其他应用程序”权限页面中看到我的应用程序,所以它确实有权限,但每次我尝试添加应用程序崩溃的视图并收到消息...
无法添加窗口 android.view.ViewRootImpl$W@f6948a0 -- 权限 拒绝窗口类型 2002
我不明白为什么它不起作用。清单具有旧版本和新版本的权限,系统专门检查“canDrawOverlays”,它在我拥有的每个模拟器上都运行良好,除了运行 Android 8.0 的模拟器。
如果需要,我很乐意展示更多代码。任何帮助将不胜感激。谢谢。
【问题讨论】:
标签: java android permissions overlay