需求

语音唤醒后在系统任意界面(应用)弹出悬浮窗(定制设备,非手机)。

问题

进程在前台时没问题,悬浮窗可以开关,进程转到后台以后就不行,即栈顶是其他应用的时候,悬浮窗弹不出,回到自己 app 查看,发现悬浮窗只显示在自己的 app 里面,无法在最顶层绘制。

失败尝试

( x )打开前台服务

( x )在打开其他应用前先打开悬浮窗,然后根据唤醒状态改变透明度

( x )分别使用 EventBus/Handler/Thread+Looper 进行尝试

( x )分别使用 Dialog/WindowManager/开源控件进行尝试

5.0/6.0/8.0 系统试了都不行,哪位大佬知道这问题怎么解决,能提供调试的思路也好,谢谢

代码

mView = LayoutInflater.from(getApplicationContext()).inflate(R.layout.float_window, null);

mWindowManager = (WindowManager) getApplicationContext().getSystemService(WINDOW_SERVICE);

mLayoutParams = new WindowManager.LayoutParams();

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

mLayoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;

} else {

mLayoutParams.type = WindowManager.LayoutParams.TYPE_PHONE;

}

mLayoutParams.width = ViewGroup.LayoutParams.WRAP_CONTENT;

mLayoutParams.height = ViewGroup.LayoutParams.WRAP_CONTENT;

mLayoutParams.x = 30;

mLayoutParams.y = 30;

mLayoutParams.gravity = Gravity.START | Gravity.BOTTOM;

mLayoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH;

mLayoutParams.format = PixelFormat.TRANSLUCENT;

mWindowManager.addView(mView, mLayoutParams);

android弹窗不能手动关闭_Android app(Service)如何在后台随时随地弹出/关闭悬浮窗?...相关推荐

  1. php 弹窗代码大全,PHP_asp.net弹出窗口代码大全,//关闭,父窗口弹出对话框,子窗 - phpStudy...

    asp.net弹出窗口代码大全 //关闭,父窗口弹出对话框,子窗口直接关闭 this.Response.Write(""); //关闭,父窗口和子窗口都不弹出对话框,直接关闭 th ...

  2. android 仿微信demo————微信顶部操作栏加号按钮实现(弹出子菜单)

    android 仿微信demo----微信启动界面实现 android 仿微信demo----注册功能实现(移动端) android 仿微信demo----注册功能实现(服务端) android 仿微 ...

  3. 给ModalPopupExtender控件添加弹出关闭等事件

    在使用Ajax Control Toolkit ModalPopup控件时,我们可能需要在该控件弹出关闭等操作时,添加对应的事件,从而在后台对控制页面元素的目的. 这里推荐的有效方法如下: 我们可以参 ...

  4. android弹窗不能手动关闭_3大类APP弹窗提醒方式总结

    一.概念简述 顾名思义,提醒方式,是指用户需要提醒的时候,在 APP 出现的一些提醒机制. 一般采用弹窗的形式进行提示,它的功能意义是: 对用户当前操作进行信息提醒并对其作出补充,或中断用户当前操作并 ...

  5. android弹窗不能手动关闭_vue3.0系列:Vue3自定义PC端弹窗组件V3Layer

    今天给大家分享的是Vue3系列之自定义桌面端对话框组件v3layer. V3Layer 基于vue3.0构建的多功能PC网页端弹窗组件.拥有超过10+种弹窗类型.30+种参数配置,支持拖拽(自定义拖拽 ...

  6. Android 11.0 手动安装Persistent app失败的解决方案

    目录 1.概述 2.手动安装Persistent app失败的解决方案的核心类

  7. Android弹出关闭输入法

    注意 : editText.requestFocus();    在需要弹出输入法的时候 http://blog.csdn.net/zgf1991/article/details/17097849 [ ...

  8. Android 禁止键盘弹出 关闭键盘 禁用键盘 禁用输入法 关闭输入法

    Android 禁止键盘弹出   公司App的需求是:EditText接收扫码枪的输入,或者自定义的数字输入界面,不要弹出键盘:   而当EditText接收到扫码枪数据时,获取到焦点,就会弹出键盘, ...

  9. Android零基础入门第89节:Fragment回退栈及弹出方法

    2019独角兽企业重金招聘Python工程师标准>>> 在上一期分享的文章末尾留了一个课后作业,有去思考如何解决吗?如果已经会了那么恭喜你,如果还不会也没关系,本期一起来学习. 一. ...

最新文章

  1. PIE SDK打开静止卫星数据
  2. 姚期智施尧耘获FOCS 2021时间检验奖,MIT华人摘最佳学生论文奖
  3. 知识图谱构建技术初探
  4. 本题主要考查指针与数组
  5. 在alv grid中的列中设置icon图标
  6. xpath的使用-通过xpath_helper进行的演练
  7. paip.目录文件列表排序算法
  8. 华为交换机删除配置命令access_华为交换机基本配置命令详解
  9. 机器人动力学-拉格朗日方程
  10. xp系统打开计算机配置文件,XP系统启动Windows零配置(WZC)服务教程(图文)
  11. class 文件比较
  12. Java获取实体类字段名
  13. 知道为什么HTML页面在电脑上和手机上的布局不同吗?这篇文章带你走进Element UI的简单适配
  14. pointer-events用法
  15. D3D11_Chili_Tutorial(2):画一个三角形
  16. 一元二次方程的简单回顾
  17. mariadb无法远程访问的解决思路
  18. 408复习经验先写到这,后面再补充
  19. 【分布式监控系统】第3章——监控客户端开发
  20. Android 10.0 Activity启动详解(二)

热门文章

  1. vant 软键盘_移动端页面输入底部被软键盘遮挡问题
  2. mysql下载备份数据库命令行,如何从MariaDB数据库备份和还原命令行
  3. PHP语言弹窗图片,PHP_php中随机显示图片的函数代码,例如博客的展示窗 复制代码...
  4. python含金量最高的考试_中国最难的五大考试,第二个含金量最高,考过年薪30万起!...
  5. 计算机网络-思维导图(6)应用层
  6. MapReduce读取本地文件,而不是HDSF上的文件
  7. 肝!不需要一行 Python 代码,也可以自动获取数据
  8. 安利!阿里程序员常用的 15 款开发者工具
  9. 太难得了!大厂数据分析实战项目资料首次公开!免费,速领!
  10. 百道Python面试题实现,搞定Python编程就靠它