• 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;
        
    }
  • 相关阅读:
    TCPUDPSocket调试工具v2.2
    C#高性能Socket服务器IOCP实现
    c#使用HttpListener监听HTTP请求
    Winform Socket通信
    C# 方法中的this参数(扩展方法)
    C# 两种方法实现HTTP协议迷你服务器
    C#访问HTTP请求
    Socket通信原理
    C#数据decimal保留两位小数
    单机网站架构云化后架构图
  • 原文地址:https://www.cnblogs.com/qingjoin/p/4950392.html
Copyright © 2020-2023  润新知