我目前正在寻找为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 +
答案 0 :(得分:0)
在清单中添加此权限。
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />