zoukankan      html  css  js  c++  java
  • iOS 获取已安装 的APP

    -(void)getAppPlist
    {
        Class LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace");
        NSObject* workspace = [LSApplicationWorkspace_class performSelector:@selector(defaultWorkspace)];
        
        NSArray*apps = [workspace performSelector:@selector(allApplications)];
        
        NSMutableArray*appsIconArr = [NSMutableArray array];
        
        NSMutableArray*appsNameArr = [NSMutableArray array];
        
        NSLog(@"apps: %@",apps );
        
        [apps 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*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(@"%@",[self properties_aps:obj]);
            
            NSLog(@"_____________________________________________
    ");
        }];
        
    
    }
    
    
    
    - (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;
        
    }
  • 相关阅读:
    代码:城市名称的联想下拉框。可按拼音搜索、按汉字搜索,是一种很简单的实现方式
    代码:拖拽
    插件:zTree
    代码:遍历
    学习笔记:Stage.js(又叫Cut.js)——2D canvas 开发库,游戏方面的
    前端模块化、构建工具
    二级联动下拉菜单
    thinkphp的目录结构设计经验总结
    tp 路径表示
    liunx 根目录介绍
  • 原文地址:https://www.cnblogs.com/qingjoin/p/4950392.html
Copyright © 2011-2022 走看看