最近开发遇到一个需求,需要禁止某个三方应用进行更新。
思路:更新时应用会弹出更新提示框,选择“是”则会开始下载更新。所以如果可以不让更新弹框弹出,则不会有更新了。
实现:
提示框是继承了系统Dialog,所以只要在Dialog执行show的时候直接return就ok。
代码路径\frameworks\base\core\java\android\app\Dialog.java
找到show函数如下:
可以看到mDecor就是要显示的Dialog的view。所有的Dialog显示的时候都走到这里,如何判断这个mDecor就是我们要屏蔽的view。方法就是用androidstudio的monitor工具看这个Dialog的UI,根据一个或多个资源id定位到这个view,然后直接return。问题解决。
如下我将代码添加到了mDecor创建之后,根据弹框两个资源id的内容比对确认弹框,直接return