Android 我是否能够通过应用程序记录用户已打开或已安装在手机上的内容?
有没有办法知道用户通过我自己的应用程序打开或安装了哪些其他应用程序 例如:我有一家出售玩具的商店,我的应用程序可以检查用户是否正在运行或安装了类似PokemnGo的东西。然后我可以为他们个性化我的商店与口袋妖怪相关的产品 这将跨越IOS和Android(或)Android 我是否能够通过应用程序记录用户已打开或已安装在手机上的内容?,android,ios,mobile,sdk,apk,Android,Ios,Mobile,Sdk,Apk,有没有办法知道用户通过我自己的应用程序打开或安装了哪些其他应用程序 例如:我有一家出售玩具的商店,我的应用程序可以检查用户是否正在运行或安装了类似PokemnGo的东西。然后我可以为他们个性化我的商店与口袋妖怪相关的产品 这将跨越IOS和Android(或) 这会侵犯隐私吗?(无论如何都会在安装时询问)您可以通过以下方式获得所有已安装应用程序的软件包名称列表: Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); mainIntent
这会侵犯隐私吗?(无论如何都会在安装时询问)您可以通过以下方式获得所有已安装应用程序的软件包名称列表:
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> pkgAppsList = context.getPackageManager().queryIntentActivities( mainIntent, 0);
Intent maintent=新意图(Intent.ACTION\u MAIN,空);
mainIntent.addCategory(Intent.CATEGORY_启动器);
List pkgAppsList=context.getPackageManager().QueryInputActivities(mainIntent,0);
您可以遍历pkgAppsList来搜索所需的应用程序
要获取所有正在运行的应用程序的列表,请使用:
ActivityManager actvityManager = (ActivityManager)
this.getSystemService( ACTIVITY_SERVICE );
List<RunningAppProcessInfo> runningProcesses = actvityManager.getRunningAppProcesses();
ActivityManager actvityManager=(ActivityManager)
这个.getSystemService(活动\服务);
List runningprocesss=actvityManager.getrunningappprocesss();
您可以使用PackageManager.getInstalledApplications()
和PackageManager。getInstalledPackages()
以获取列表
Doc for对于Android,正如其他人所指出的,使用
PackageManager
和ActivityManager
可以实现这一点
不幸的是,在iOS上,没有办法不让你在应用商店被苹果拒绝。如果您的应用程序是内部分发的,并且不需要经过苹果的审查流程(即席/企业应用程序),则有一些方法可能有效。请参阅更多详细信息 这是刚刚安装还是正在运行?这仅适用于所有已安装的应用程序。查看已编辑的答案,查看正在运行的应用程序列表。非常感谢,这是否也适用于IOS,还是仅适用于Android?这仅适用于Android。iOS也应该有类似的功能。请为iOS单独发布。如果我的答案有用且有效,请将其标记为已接受的答案。不幸的是,问一个同时涵盖iOS和android的问题并不总是一个好主意,因为答案会有所不同。iOS上的答案是否定的(谢天谢地),这是真的,但我需要为这两个平台开发两个应用程序……因此没有办法跟踪iOS上的应用程序安装或活动应用程序?@Stary它只针对Android。