获取ios上已安装的app列表
前段时间朋友做一个ASO优化的项目,找我完成几个功能:
- 获取用户的App列表
- 我们的App保持在后台一直运行
- 判断唯一设备ID,如果用户删除App再安装,变更IDFA等都能正确判断是同一台设备。
经过调研,最终以上问题都解决了,将解决方法记录下来:
获取用户App列表的方法
有两种解决方式,选合适的,必要时配合使用
1. 使用苹果的私有类:LSApplicationWorkspace相关类
该方法能获取到用户已安装的所有App的AppId,bundleId,应用名称等比较全的信息。
限制条件:不能判断App的运行情况,IOS7以上系统
2. 遍历进程
遍历进程列表,不管App是运行状态还是挂起状态,能获取到进程名称、已打开时长等信息。
限制条件:
-
进程名称无法与AppId,bundleId等关联起来。
-
由于是获取的进程列表,那么没在运行的App就无法获取到信息了。
作者 侯振永
写于2015 年 8月 22日