无法添加窗口 - 尝试创建浮动视图时权限被拒绝

时间:2017-07-17 11:12:56

标签: java android

我目前正在寻找为Android开发界面调试工具,它会显示覆盖在其下运行的任何应用程序之上的一些系统信息。我在线查看了许多不同的资源,并遵循将我的应用程序设置为TYPE_APPLICATION_OVERLAY的基本过程,使用android.permission.SYSTEM_ALERT_WINDOW定义我的清单中所需的权限,但是,当尝试运行应用程序时,崩溃时出现错误FATAL EXCEPTION ... Unable to add window android.view.ViewRootImpl$W... -- permission denied for window type 2038

我尝试进一步调查可能导致此问题的原因,我设法发现,由于某个版本,Android会要求用户明确设置应用的权限,以便通过Settings.ACTION_MANAGE_OVERLAY_PERMISSION覆盖其他应用,但是即使在启用绘制其他应用程序的权限后,该过程仍会导致相同的错误。

我目前有我的应用设置,以检查是否已授予绘制权限,并要求用户设置它,如果没有。一旦确认用户启用了权限,它就会调用我尝试创建重叠视图的服务。

我对Android开发相对较新,所以我很感激任何想法或指导!

更新:通过将窗口的LayoutParam设置为使用TYPE_PHONE而不是TYPE_APPLICATION_OVERLAY来管理以使其正常工作。这适用于Android N,但值得注意的是,此方法已弃用于Android O +

1 个答案:

答案 0 :(得分:0)

在清单中添加此权限。

 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />