小米Adnroid默认禁止悬浮框的使用,导致开发的悬浮框无法接收事件
2015-11-30 21:06
423 查看
比如你建了一个悬浮框:
如果你用的是小米手机,你会发现这个窗口接收不到消息,消息会透传到下一层,如果下一层没有接收者,才会被接收。此时你把【安全中心】->【授权管理】->[应用权限管理]->【权限管理】中你的app的悬浮框设置为允许,就可以接收到消息了。这应该是小米ROM自己独特的地方,拿过其他手机测试都不存在这个情况。所以开发Android就这点不好,碎片化太严重,各有各的特色。
【后记】后来无意中看到一篇文章,可以在不使用权限的情况下展示悬浮窗,并兼容小米特殊ROM的情况 链接:http://www.jianshu.com/p/167fd5f47d5c 或者 http://www.liaohuqiu.net/cn/posts/android-windows-manager/
解决方案如下:
在手机API Level>=19的情况下,设置type为TYPE_TOAST, 低版本使用TYPE_PHONE
因为在低版本上TYPE_TOAST无法接收触摸事件。
WindowManager windowManager = getWindowManager(context); int screenWidth = windowManager.getDefaultDisplay().getWidth(); if (smallWindow == null) { smallWindow = new FloatWindowSmallView(context); if (smallWindowParams == null) { smallWindowParams = new LayoutParams(); smallWindowParams.type = LayoutParams.TYPE_PHONE; smallWindowParams.format = PixelFormat.RGBA_8888; smallWindowParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL | LayoutParams.FLAG_NOT_FOCUSABLE; smallWindowParams.gravity = Gravity.LEFT | Gravity.TOP; smallWindowParams.width = FloatWindowSmallView.viewWidth; smallWindowParams.height = FloatWindowSmallView.viewHeight; smallWindowParams.x = screenWidth; smallWindowParams.y = 0; smallWindow.setVoipUIPaddingBottom(paddingBottom); } smallWindow.setParams(smallWindowParams); windowManager.addView(smallWindow, smallWindowParams); }
如果你用的是小米手机,你会发现这个窗口接收不到消息,消息会透传到下一层,如果下一层没有接收者,才会被接收。此时你把【安全中心】->【授权管理】->[应用权限管理]->【权限管理】中你的app的悬浮框设置为允许,就可以接收到消息了。这应该是小米ROM自己独特的地方,拿过其他手机测试都不存在这个情况。所以开发Android就这点不好,碎片化太严重,各有各的特色。
【后记】后来无意中看到一篇文章,可以在不使用权限的情况下展示悬浮窗,并兼容小米特殊ROM的情况 链接:http://www.jianshu.com/p/167fd5f47d5c 或者 http://www.liaohuqiu.net/cn/posts/android-windows-manager/
解决方案如下:
在手机API Level>=19的情况下,设置type为TYPE_TOAST, 低版本使用TYPE_PHONE
因为在低版本上TYPE_TOAST无法接收触摸事件。
相关文章推荐
- 常用程序管理命令[转]
- ORA-01861: 文字与格式字符串不匹配
- 邻接表的实现与深度遍历
- 区分单引号和双引号
- jquery怎么在点击li标签之后添加一个在class,点击下一个li时删除上一个class?
- shell下的作业管理[转]
- 20151130语法基础
- 【转】css中float left与float right的使用说明
- PrintStream
- hdu 1251(字典树)
- Qt从零开始制作串口调试助手-(第十一章、数据校验码生成功能)-Creator_Ly
- 2015-11-30 20:59:08之自力更生
- poj3046
- 顺时针打印矩阵(C++版)
- 51单片机循迹小车源程序
- JavaScript Number 对象
- 写在最初的随笔
- 第七周实践项目5—排队看病模拟
- 一切过去,皆为序章-------十一月总结
- 1.12 JTA(java transaction API)