知道我的应用程序是否已卸载

时间:2015-08-19 09:47:18

标签: android uninstall

经过大量研究后,我得出的结论是卸载无法跟踪" Package Removed"除了正在卸载的应用程序之外,所有应用程序都不会广播操作。

然后我找到了跟踪卸载的方法。我通过发送GCM并获取"未注册"保存了所有卸载用户信息。响应中的错误(GCM给出"未注册"卸载了应用程序的设备出错)。

所以现在,当我安装Opera Max应用并卸载它时,它打开了一个网页,要求"卸载调查"。他们怎么能这样做?

2 个答案:

答案 0 :(得分:2)

请参阅Droidcon 2015中的these slides,其中一些人反向设计Opera Max如何做到这一点,并参阅this GitHub repository了解一些示例代码。

答案 1 :(得分:0)

我卸载Opera Max时无法重现这种行为,但我相信他们的技术大致如下:

  • 他们以某种方式注册了一个事件处理程序,如果安装该应用程序的目录消失,它将发送一个Intent
  • 该事件处理程序在卸载应用程序后仍然存在
  • 当目录消失时意图激活 - 当然他们现在无法运行自己的代码(因为它已经被卸载),但他们可以将你引导到任何浏览器的网页

当我尝试使用时,我没有安装任何其他Opera应用程序 - 如果您还有第二个应用程序也可以控制尚未卸载,那么每个应用程序都可以轻松监视另一个应用程序的卸载。 / p>

我在Lollipop上运行 - 也许Android的最新版本已经关闭了当然感觉像是安全漏洞。