#import <objc/runtime.h>
- (NSArray *)getAllAppsFromDevice
{
//獲取手機上所有的app
Class LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace");
NSObject *workspace = [LSApplicationWorkspace_class performSelector:@selector(defaultWorkspace)];
NSArray *apps = [workspace performSelector:@selector(allInstalledApplications)];
Class LSApplicationProxy_class = objc_getClass("LSApplicationProxy");
NSMutableArray *deviceApps = [NSMutableArray new];
for (int i = 0; i < apps.count; i++) {
NSObject *temp = apps[i];
if ([temp isKindOfClass:LSApplicationProxy_class]) {
//? ? ? ? ? ? ApplicationModel *appModel = [[ApplicationModel alloc] init];
NSString *tempKey = [temp performSelector:NSSelectorFromString(@"applicationIdentifier")];
//? ? ? ? ? ? if ([tempKey containsOtherString:@"apple"]) {
//? ? ? ? ? ? ? ? continue; itemName
//? ? ? ? ? ? }
//版本
NSString *tempVersionNumber = [temp performSelector:NSSelectorFromString(@"shortVersionString")];
//? ? ? ? ? ? appModel.appNumber = tempVersionNumber;
NSString *tempName = [temp performSelector:NSSelectorFromString(@"bundleIdentifier")];
NSLog(@"應用名-%d:%@",i,tempName);
//bundle id
NSString *tempAppkey = [temp performSelector:NSSelectorFromString(@"applicationIdentifier")];
//? ? ? ? ? ? appModel.appKey = tempAppkey;
//? ? ? ? ? ? [deviceApps addObject:appModel];
}
}
return [deviceApps copy];
}