设为首页 加入收藏

TOP

车载Launcher中,Service下Dialog弹框,并且覆盖状态栏且状态栏不能点击
2023-09-09 10:25:31 】 浏览:221
Tags:车载 Launcher Service Dialog 弹框 能点击

在Service中使用系统dialog弹框,但是无法覆盖全部,底部菜单依然可以被点击,在某些场景下是不符合需求的

getDialog().getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ERROR);

 

显然是 dialog 的层级不够高导致的,很多时候会直接修改层级,但是如果修改的层级涉及到系统权限,运行就会直接报错

getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ERROR)

WindowManager$BadTokenException: Unable to add window android.view.ViewRootImpl$W@e94bee9 -- permission denied for window type 2010

这种情况一般有两种方案

1、manifest 中添加 android:sharedUserId="android.uid.system"

直接将整个项目变成系统级应用,这样就能随意使用权限不被限制

2、manifest 中添加 INTERNAL_SYSTEM_WINDOW permission

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

在次运行后弹框已经是系统级,并且下方菜单已经无法被点击,大部分使用第二种方案,系统及应用基本一开始就已经定性,不会也不能随意更改

 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Kotlin 基础入门 下一篇大文件 MD5 SHA 校验时间优化之路

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目