2 killwonder killwonder 于 2016.02.02 18:54 提问

IOS能获取本机已安装应用信息么

IOS开发,能通过方法获取本机已安装应用信息么?如果能获取怎么获取?求大神指导!!!

5个回答

dd90702
dd90702   2016.02.15 11:48

Class LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace");
NSObject* workspace = [LSApplicationWorkspace_class performSelector:@selector(defaultWorkspace)];

id arrInstalled = [workspace performSelector:@selector(allInstalledApplications)];

for (id var in arrInstalled)
{
    id type = [var performSelector:@selector(applicationType)];
    if (![type isEqualToString:@"User"])
    {
        continue;
    }

    if (![var respondsToSelector:@selector(bundleVersion)]
        || ![var respondsToSelector:@selector(shortVersionString)]
        || ![var respondsToSelector:@selector(applicationIdentifier)])
    {
        return ;
    }
    id bundleversion = [var performSelector:@selector(bundleVersion)];
    id shortversion = [var performSelector:@selector(shortVersionString)];
    id applicationIdentifier = [var performSelector:@selector(applicationIdentifier)];

    NSLog(@"name:%@, id:%@, ver:%@", [var performSelector:@selector(localizedName)], applicationIdentifier, shortversion);
    [self.appList addObject:[applicationIdentifier description]];
}

    私有方法可以获取所有安装APP
wu__di
wu__di   2016.02.02 20:54

不可以,有一种情况可以,比如你用了qq或者微信的三方,可以判断它们安装没

oyljerry
oyljerry   Ds   Rxr 2016.02.02 20:58

通过URL schema 发送各种请求来判断

91program
91program   Ds   Rxr 2016.02.02 23:00
91program
91program   Ds   Rxr 2016.02.02 22:57

ios获取本机已安装的app列表 前提是必须越狱才能获取

killwonder
killwonder 你上面提供的两个链接里面的方法是不是都要越狱才能有用啊?
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
iOS获取应用列表
首先本文所研究的必须在越狱的前提下。 ios中要列出已安装的软件目前有3中方法:(据我所知) 1.我之前的文章有2种方法获取,详情请移步: http://www.iloss.me/?p=844  2.用系统提供的函数,应该比上面2种方法要方便,安全,高效。(但据我测试系统的也是读取com.apple.mobile.installation.plist文件)  Mobile Install
ios获取已安装的应用列表
ios获取已安装的应用列表
iOS 获取手机上已经安装的应用
前言 公司内部有一给自己的 App 发布后台,类似于 FIR 那样的存在, 有完整的 LDAP 账号登录。每天的 daily build 和 历史发布版都会放到那里去。然而每次都要登录后台扫描二维码下载实在是太麻烦了,我们就打算做一个客户端。 于是问题来了:如何知道我手机上安装的礼物说版本号比我当前的要低呢? 方案们 方案一 剪贴板共享 我们知道同一个证书下的软件,是
iOS设备安装App列表信息获取
之前知道如何获取一个iOS设备上安装的App的列表,但是App信息获取有限,现在对如何获取iOS设备上的App的其它信息的获取加以说明,具体获取方式如下: Class LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace"); NSObject* workspace = [LSApplicationWo
获取本机所有已安装的软件
获取本机已经安装的全部软件,包括Windows更新等。
iOS获取手机安装的所有应用信息(bundle id,icon,名称等)
获取手机上所有应用的信息,支持iOS10以下。私有方法,可以获取到icon,bundle id,名称等信息。
iOS获取手机上安装的APP的名称和版本
Class c =NSClassFromString(@"LSApplicationWorkspace");     id s = [(id)c performSelector:NSSelectorFromString(@"defaultWorkspace")];     NSArray *array = [s performSelector:NSSelectorFromString(@
Android 获取本地已安装的应用程序
有一个需求获取本地指定的系统App和已经下载的App列表: 实现非常简单,首先获取本机已安装的App,然后把我们指定的系统App过滤掉,存入一个List集合中,然后把其他的系统App过滤掉,剩下的在放入,另外一个List集合中,组合就Ok。 贴下主要代码: /** * Created by Xiho on 12:10 * MyBlog: xuhao.tech * GitHub: git
runtime直接获取自己手机上已经安装app的bundle id
runtime提供了一个方法直接可以获取已经安装app的bundle id。 直接上代码: #include  Class LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace"); NSObject* workspace = [LSApp
获取手机所有安装APP的信息
public List getAppInfo() { // 获得PackageManager对象 mPm = this.getPackageManager(); List packageInfoList = mPm.getInstalledPackages(0); // 根据name排序 Collections.sort(packageInfoList, n