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;
        
    }
  • 相关阅读:
    对日期和时间的处理 NSCalendar
    常用的预处理器指令
    NSString常用方法
    UINavigationBar导航栏相关设置
    Xcode和github入门详细教程
    IOS项目集成ShareSDK实现第三方登录、分享、关注等功能
    ios设备 分辨率(转)
    iOS本地推送
    cunix的opencv学习经验
    mpeg压缩输入格式---打包模式和平面模式
  • 原文地址:https://www.cnblogs.com/qingjoin/p/4950392.html
Copyright © 2011-2022 走看看