获取手机上的应用名称和图标需要使用私有api,私有api是通不过苹果的审核的
代码如下:
NSMutableArray * appsIconArr = [[NSMutableArray alloc]init];
NSMutableArray * appsNameArr = [[NSMutableArray alloc]init];
dispatch_async(dispatch_get_global_queue(0, 0), ^{
Class LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace");
NSObject* workspace = [LSApplicationWorkspace_class performSelector:@selector(defaultWorkspace)];
NSMutableArray *appsInfoArr = [workspace performSelector:@selector(allApplications)];
[appsInfoArr enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop)
{
NSDictionary *boundIconsDictionary = [obj performSelector:@selector(boundIconsDictionary)];
NSString *iconPath = [NSString stringWithFormat:@"%@/%@.png", [[obj performSelector:@selector(resourcesDirectoryURL)] path], [[[boundIconsDictionary objectForKey:@"CFBundlePrimaryIcon"] objectForKey:@"CFBundleIconFiles"]lastObject]];
UIImage *appImage = [[[UIImage alloc]initWithContentsOfFile:iconPath] TransformtoSize:CGSizeMake(65, 65)];
if (appImage)
{
[appsIconArr addObject:appImage];
[appsNameArr addObject:[obj performSelector:@selector(localizedName)]];
}
}];