PackageInstall 安装按钮无法点击的问题总结

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,实现悬浮窗口,成功的复现出了问题。

目前发现,护眼宝这个应用会导致这个问题。


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值