【问题标题】:Way to know if my application is installed知道我的应用程序是否已安装的方法
【发布时间】:2011-05-18 10:28:48
【问题描述】:

有什么方法(意图)知道我的应用程序是否已安装? 我点击了下面的链接,但我的应用程序在安装我的应用程序时没有得到意图

Android - How to intercept the 'Install application' intent

【问题讨论】:

  • 所以你有app A,想知道app B什么时候安装的;或者你有应用 A;并想知道何时升级或重新安装?
  • 我想知道应用 A 中是否安装了应用 A。
  • 所以应用 A 正在运行,并且在运行时您想查看正在运行的应用是否已实际安装?
  • “我思,故我在”——笛卡尔
  • 你找到答案了吗?

标签: android


【解决方案1】:

如果你想从应用A执行任何代码,它必须已经安装(很明显,不是吗?),所以你不能从你的应用A检查你的应用APP是否安装。

这就像你想知道你什么时候死了:你死了之后,就不可能知道了。另一方面,其他人可以知道你什么时候死……对于 Android 场景也是如此:应用 B 可以知道应用 A 是否已安装(通过使用 getInstalledPackages 或意图或其他方式)。

【讨论】:

  • 其实用例是。我的应用在应用启动器中没有图标。基本上我想在安装应用程序后立即启动服务(用户不会启动我的应用程序)
  • 然后,您可以尝试使用BroadcastReceiver 拦截一些外部意图。不确定您是否可以拦截android.intent.action.PACKAGE_ADDED... 但我知道您可以拦截诸如引导意图之类的内容(在这种情况下,您必须等到用户重新启动手机)。您可以搜索可以使用一次的任何其他意图,仅用于启动服务。
  • android.intent.action.PACKAGE_ADDED 无法接收 self ,只有在任何其他应用安装该应用时才会通知
  • 很高兴知道这一点,谢谢。那么你将不得不使用其他意图:)
【解决方案2】:

您可以使用http://developer.android.com/reference/android/content/pm/PackageManager.html#getInstalledPackages(int)

记得在你的 AndroidManifest 中设置适当的权限。

您引用了指向Android - How to intercept the 'Install application' intent 的链接 - 这意味着您想知道您的应用程序何时安装?您是否要检查人们是否真的下载了您的应用程序?基本上我认为这是不可能的。

但如果您想查看您的应用是否已安装,只需检查 SharedPreference,如果不可能,则进行全新安装。

【讨论】:

  • 我只想知道我的应用程序是否已安装,我的意思是全新安装用例是我的应用程序安装时我想注册到内容观察者,所以我想知道如何做到这一点跨度>
  • 这个答案中的全新安装测试似乎是合理的。你也可以在第一次安装时做一些事情,然后在某处设置一个标志,如果你看到那个标志已经设置,就不要再做。
  • 有什么方法可以检查全新安装吗?
  • 写一个共享偏好并阅读它。如果它在您的程序中不可用,则它是新鲜的。请记住,如果用户删除了您的应用并重新安装了它,这也很重要。
猜你喜欢
  • 1970-01-01
  • 2021-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多