【问题标题】:Know if my app is uninstalled知道我的应用程序是否已卸载
【发布时间】:2015-08-19 09:47:17
【问题描述】:

经过大量研究,我得出一个结论,即无法跟踪卸载,因为“已删除包”操作不会广播到除被卸载的应用之外的所有应用。

然后我找到了一种跟踪卸载的方法。我通过发送 GCM 并在响应中收到“未注册”错误保存了所有卸载用户信息(GCM 为已卸载应用的设备提供“未注册”错误)。

所以现在,当我安装Opera Max 应用程序并卸载它时,它会打开一个网页询问“卸载调查”。他们是怎么做到的?

【问题讨论】:

  • 这对 SO 来说不是一个好问题。我建议您联系 Opera Max 开发人员并询问他们。
  • PACKAGE_REMOVED 不会广播到正在卸载的同一个应用程序。而且我不知道为什么当它与编程特别相关时,这不是一个好问题。
  • 我知道你可能已经经历过这个但仍然检查这个链接 bcoz 答案和评论给出了一点想法stackoverflow.com/questions/10219328/…
  • @ShadowDroid 我想我已经遇到过这个问题,但不确定什么时候。我以前读过马克的回答。

标签: android uninstallation


【解决方案1】:

参见 Droidcon 2015 的 these slides,其中一些人对 Opera Max 的执行方式进行了逆向工程,并参见 this GitHub repository 获取一些示例代码。

【讨论】:

  • 太棒了!不敢相信他们这样做只是为了打开一个网页。 ;)
【解决方案2】:

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

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

我在尝试此操作时没有安装任何其他 Opera 应用程序 - 如果您还控制了另一个尚未卸载的应用程序,那么每个应用程序都可以轻松监控另一个应用程序的卸载情况。

我在 Lollipop 上运行 - 也许最新版本的 Android 已经关闭了肯定感觉像是一个安全漏洞的地方。

【讨论】:

  • 是的,它不适用于棒棒糖设备。我检查了一个 kitkat 设备。
猜你喜欢
  • 2012-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-18
  • 2014-08-07
  • 2012-04-20
相关资源
最近更新 更多