-(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(@"_____________________________________________\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 = ; 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;
}