【问题标题】:Am I able to record somehow with app what users either have open or have already installed on their phone?我是否可以通过应用程序以某种方式记录用户已打开或已在手机上安装的内容?
【发布时间】:2017-02-01 12:30:05
【问题描述】:

有没有办法通过我自己的应用了解用户在手机上打开或安装了哪些其他应用?

例如:我有一家卖玩具的商店,我的应用可以检查用户当前是否正在运行或安装了 PokemnGo 之类的东西。然后我可以用 Pokemn 相关产品为他们个性化我的商店。

这将同时适用于 IOS 和 Android(或/或)

这会侵犯隐私吗? (无论如何都会在安装时询问)

【问题讨论】:

  • 不幸的是,提出一个涵盖 iOS 和 android 的问题并不总是一个好主意,因为答案会有所不同。 iOS 上的答案是否定的(谢天谢地)
  • 没错,但我需要为这两个平台开发这两个应用程序......所以没有办法在 IOS 上跟踪应用程序安装或活动应用程序?

标签: android ios mobile sdk apk


【解决方案1】:

您可以使用PackageManager.getInstalledApplications() 和PackageManager. getInstalledPackages() 获取列表。

PackageManager 的文档

【讨论】:

  • @Stary 仅适用于 Android。
【解决方案2】:

您可以使用以下命令获取所有已安装应用程序的软件包名称列表:

Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> pkgAppsList = context.getPackageManager().queryIntentActivities( mainIntent, 0);

您可以遍历 pkgAppsList 来搜索您想要的应用程序。

要获取所有正在运行的应用程序的列表,请使用:

ActivityManager actvityManager = (ActivityManager)
this.getSystemService( ACTIVITY_SERVICE );
List<RunningAppProcessInfo> runningProcesses = actvityManager.getRunningAppProcesses();

【讨论】:

  • 这也是刚刚安装还是正在运行?
  • 这仅适用于所有已安装的应用程序。检查已编辑的答案以获取正在运行的应用程序列表。
  • 非常感谢,这也适用于 IOS 还是仅适用于 Android?
  • 这仅适用于安卓。 iOS也应该有类似的东西。请为 iOS 单独发布。如果我的答案有用并且有效,请将其标记为已接受的答案。
【解决方案3】:

对于 Android,有一些方法可以做到这一点,正如其他人所指出的那样,使用 PackageManager 和 ActivityManager。

不幸的是,在 iOS 上,没有任何方法不会让您在应用商店被 Apple 拒绝。如果您的应用程序是内部分发的并且不需要经过 Apple 的审核流程(临时/企业应用程序),则有些方法可能会起作用。查看更多详情here。

【讨论】:

    猜你喜欢
    • 2011-11-29
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 2021-01-05
    • 1970-01-01
    • 2020-06-30
    • 2015-01-15
    • 1970-01-01
    相关资源
    最近更新 更多