Android应用启动时自动跳转悬浮窗显示设置页问题排查求助
问题原因
- 你贴出的代码段就是触发自动跳转悬浮窗设置页的直接原因:你复用的Xamarin定位服务开源库自带了悬浮窗权限检查逻辑,Android 6.0及以上系统中,只要检测到应用没有悬浮窗权限,就会直接执行跳转代码打开设置页。
- 你没有在项目中声明
SYSTEM_ALERT_WINDOW权限,所以系统不会弹出悬浮窗权限申请弹窗,代码执行到StartActivity逻辑时就会直接跳转到系统设置页,和开源库示例的表现差异也来源于此:示例项目声明了该权限,所以会先弹出权限申请选项。 - 该权限检查逻辑是开源库作者为了适配旧版安卓系统后台服务保活、显示常驻通知的错误实现,实际上当前安卓版本的前台定位服务不需要悬浮窗权限即可正常运行。
解决方法
- 直接删除你贴出的这段悬浮窗权限检查及跳转代码即可,你本身不需要悬浮窗相关功能,这段逻辑对你的项目没有实际作用。
- 若你是直接引用了该开源库的依赖包而非复制代码,可以查找库的配置项,关闭悬浮窗权限申请的相关开关,也可以避免触发跳转逻辑。
- 清理代码后再全局检查项目中是否还有其他调用
CanDrawOverlays、申请SYSTEM_ALERT_WINDOW权限的相关逻辑,一并删除即可。
内容的提问来源于stack exchange,提问作者PJ.
相关产品推荐
相关产品推荐

