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;
        
    }
  • 相关阅读:
    Java解析复杂xml文件,使用Xpath
    表达式求值
    解决 error CS0012 错误
    mssql sqlserver 分组排序函数row_number、rank、dense_rank用法简介及说明
    c#核心基础
    Git源代码管理
    CASE 表达式
    NPM -- 初探--01
    ASP.NET Zero--基础设施
    ASP.NET Zero--基于令牌的认证&SWAGGER UI
  • 原文地址:https://www.cnblogs.com/qingjoin/p/4950392.html
Copyright © 2011-2022 走看看