[英]Get list of installed apps on iPhone
有没有办法(一些API)来获取iPhone设备上已安装的应用程序列表。
在搜索类似的问题时,我发现了一些与url registration
相关的内容,但我认为必须有一些API来执行此操作,因为我不想对应用程序做任何事情,我只想要列表。
不,应用程序是沙盒,Apple接受的API不包含任何可以让您这样做的内容。
但是,您可以测试是否安装了某个应用程序:
[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"thisapp://foo"]
您可以从此处获取应用和URL方案列表。
对于越狱设备,您可以使用下一段代码:
-(void)appInstalledList
{
static NSString* const path = @"/private/var/mobile/Library/Caches/com.apple.mobile.installation.plist";
NSDictionary *cacheDict = nil;
BOOL isDir = NO;
if ([[NSFileManager defaultManager] fileExistsAtPath: path isDirectory: &isDir] && !isDir)
{
cacheDict = [NSDictionary dictionaryWithContentsOfFile: path];
NSDictionary *system = [cacheDict objectForKey: @"System"]; // First check all system (jailbroken) apps
for (NSString *key in system)
{
NSLog(@"%@",key);
}
NSDictionary *user = [cacheDict objectForKey: @"User"]; // Then all the user (App Store /var/mobile/Applications) apps
for (NSString *key in user)
{
NSLog(@"%@",key);
}
return;
}
NSLog(@"can not find installed app plist");
}
对于非越狱设备,我们可以使用被称为“ ihaspp ”的第三方框架,也可以使用其免费和苹果接受。 他们还提供了如何集成和如何使用的良好文档。 可能这对你有帮助。 祝好运!!
好吧,不确定在给出最后一个答案时是否可以使用它(iOS 6之前)此外这个是时间密集的,但很简单:进入设置> Gen.>使用。 目前至少使用的第一类是存储。
它将显示部分应用列表。 在此部分列表的底部是一个显示“显示所有应用”的按钮。 点击它,你将不得不通过屏幕浏览,并截取屏幕截图(快速锁定按钮和主页按钮截图)。 我现在正在这样做,我的iPhone上有数百个应用程序。 所以这需要我一段时间。 但至少在这个过程结束时,我将拥有所有应用程序的图像。
您可以使用以下方法执行此操作:
Class LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace");
SEL selector = NSSelectorFromString(@"defaultWorkspace");
NSObject* workspace = [LSApplicationWorkspace_class performSelector:selector];
SEL selectorALL = NSSelectorFromString(@"allApplications");
NSMutableArray *Allapps = [workspace performSelector:selectorALL];
NSLog(@"apps: %@", Allapps);
然后通过访问每个元素并将其拆分,您可以获得您的应用名称,甚至是Bundle Identifier。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.