PackageInstall 安装按钮无法点击的问题总结
2017-08-22 14:12
288 查看
PackageInstall的应用程序安装界面,安装按钮无法点击,但是取消按钮可以正常点击
前几天客户反馈,其遇见一个问题,通过应用商店下载的apk在安装的时候,只能点击取消,无法点击安装按钮。
这个问题首先经过查看代码,没有发现任何可疑的地方,因为代码中没有任何地方去禁制这个按钮的点击属性,因此其一直都是可以点击的。
最终经过仔细排查发现了在此界面的布局中,安装按钮比取消按钮多了一个约束条件,android:filterTouchesWhenObscured="true"。布局文件如下:
<Button
android:id="@+id/ok_button"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="0dip"
android:layout_height="40dp"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp"
android:layout_weight="67"
android:filterTouchesWhenObscured="true"
android:textColor="#3c3c3c"
android:maxLines="1"
android:text="@string/next" />
经过对android:filterTouchesWhenObscured="true"属性分析发现:安装"按钮控件设置filterTouchesWhenObscured属性为true,这个属性会启用过滤机制。启用后,系统会在用户启动另外一个view的时候锁定原先的view。比如当有警告,对话或其他视窗在view上面展示时就不在允许点击view了。此举主要是为了方式第三方流氓软件在应用程序安装界面的上方显示引导view。来诱导用户安装应用程序。原来谷歌想的倒是挺周到的,担心其他应用在Packageinstall的界面上方设置引导VIew,来诱导用户安装应用,因此启动了这个过滤机制。
通过上面的分析,我们已经找到了一丝线索,剩下的就是验证,我们自己编写apk,实现悬浮窗口,成功的复现出了问题。
目前发现,护眼宝这个应用会导致这个问题。
前几天客户反馈,其遇见一个问题,通过应用商店下载的apk在安装的时候,只能点击取消,无法点击安装按钮。
这个问题首先经过查看代码,没有发现任何可疑的地方,因为代码中没有任何地方去禁制这个按钮的点击属性,因此其一直都是可以点击的。
最终经过仔细排查发现了在此界面的布局中,安装按钮比取消按钮多了一个约束条件,android:filterTouchesWhenObscured="true"。布局文件如下:
<Button
android:id="@+id/ok_button"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="0dip"
android:layout_height="40dp"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp"
android:layout_weight="67"
android:filterTouchesWhenObscured="true"
android:textColor="#3c3c3c"
android:maxLines="1"
android:text="@string/next" />
经过对android:filterTouchesWhenObscured="true"属性分析发现:安装"按钮控件设置filterTouchesWhenObscured属性为true,这个属性会启用过滤机制。启用后,系统会在用户启动另外一个view的时候锁定原先的view。比如当有警告,对话或其他视窗在view上面展示时就不在允许点击view了。此举主要是为了方式第三方流氓软件在应用程序安装界面的上方显示引导view。来诱导用户安装应用程序。原来谷歌想的倒是挺周到的,担心其他应用在Packageinstall的界面上方设置引导VIew,来诱导用户安装应用,因此启动了这个过滤机制。
通过上面的分析,我们已经找到了一丝线索,剩下的就是验证,我们自己编写apk,实现悬浮窗口,成功的复现出了问题。
目前发现,护眼宝这个应用会导致这个问题。
相关文章推荐
- WIN7 X64 解决无法安装IE11,以及无法点击微软升级包MSU的问题
- window server 2003安装后无法上网问题解决办法总结
- 关于使用Android installer安装应用,安装好之后点击“打开”按钮进入应用之后的界面显示问题
- 项目问题总结1:Nuget无法安装程序包dll,提示:此程序包已安装
- Unity导出的Android项目按钮无法点击问题
- dojo grid遇到的问题 点击按钮“全选”'删除"无法实现
- Android sdk manger安装过程中,发现无法改名的问题,解决后,点击 manger.EXE 无法更新剩下的包
- ionic开发——百度地图InfoWindow信息窗口上添加按钮,无法触发点击事件问题解决办法
- Android 各种按钮点击效果以及兼容性问题总结
- 关于使用Android installer安装应用,安装好之后点击“打开”按钮进入应用之后的界面显示问题
- Windows Server 2008新安装MOSS后管理中心里的按钮无法点击
- Android 各种按钮点击效果以及兼容性问题总结
- 关于iOS中按钮无法点击问题的描述
- HP pavilion 安装ubuntu14.04后无线无法使用问题总结
- Android APP安装后直接打开,点击MENU进入系统主菜单,APP无法再次启动的问题
- [工作问题总结]jre 已安装 打印点击无反应解决方案
- Android sdk manger安装过程中,发现无法改名的问题,解决后,点击 manger.EXE 无法更新剩下的包
- Myeclipse版本10出现的无法点击部署按钮的问题解决
- mysql安装配置乱码无法开启服务问题总结