您的位置:首页 > 移动开发 > IOS开发

如何获取IOS上所有安装的app?

2015-08-30 16:35 513 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/lishengfeng2/article/details/48106005

直接贴代码



Class LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace");

    NSObject* workspace = [LSApplicationWorkspace_class performSelector:@selector(defaultWorkspace)];

//    NSLog(@"apps: %@", [workspace performSelector:@selector(allApplications)]);

    NSArray *apps = [workspace performSelector:@selector(allApplications)];

    

    NSMutableArray *appsIconArr = [NSMutableArray array];

    NSMutableArray *appsNameArr = [NSMutableArray array];

    [apps enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {

        NSDictionary *boundIconsDictionary = [obj performSelector:@selector(boundIconsDictionary)];

        

        NSString *iconPath = [NSString stringWithFormat:@"%@/%@.png", [[obj performSelector:@selector(resourcesDirectoryURL)] path], [[[boundIconsDictionaryobjectForKey:@"CFBundlePrimaryIcon"] objectForKey:@"CFBundleIconFiles"]lastObject]];

        

        UIImage *image = [[UIImage alloc] initWithContentsOfFile:iconPath];

        id name = [obj performSelector:@selector(localizedName)];

        if (image)

        {

            [appsIconArr addObject:image];

            [appsNameArr addObject:name];

        }

        

        NSLog(@"iconPath = %@", iconPath);

        NSLog(@"name = %@", name);

        NSLog(@"_____________________________________________\n");

    }];



/* 获取对象的所有属性 以及属性值 */

- (NSDictionary *)properties_aps:(id)objc

{

    NSMutableDictionary *props = [NSMutableDictionary dictionary];

    unsigned int outCount, i;

    objc_property_t *properties = class_copyPropertyList([objc class], &outCount);

    for (i = 0; i<outCount; i++)

    {

        objc_property_t property = properties[i];

        const char* char_f =property_getName(property);

        NSString *propertyName = [NSString stringWithUTF8String:char_f];

        id propertyValue = [objc valueForKey:(NSString *)propertyName];

        if (propertyValue) [props setObject:propertyValue forKey:propertyName];

    }

    free(properties);

    return props;

}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: