#include <objc/runtime.h>
Class LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace");
if (LSApplicationWorkspace_class) {
NSObject* workspace = [LSApplicationWorkspace_class defaultWorkspace];;//[LSApplicationWorkspace_class performSelector:@selector(defaultWorkspace)];
if (workspace) {
NSLog(@"apps: %@", [workspace allInstalledApplications ]);
}
}
注:需要将附件中的framework,添加到工程中
app安装状态
#import <dlfcn.h>
void *lib = dlopen("/System/Library/Frameworks/MobileCoreServices.framework/MobileCoreServices", RTLD_LAZY);
if (lib)
{
Class LSApplicationWorkspace = NSClassFromString(@"LSApplicationWorkspace");
id AAURLConfiguration1 = [LSApplicationWorkspace defaultWorkspace];
if (AAURLConfiguration1)
{
id arrApp = [AAURLConfiguration1 allApplications];
NSLog(@"arrApp:%@",arrApp);
for (int i=0; i<[arrApp count]; i++) {
LSApplicationProxy *LSApplicationProxy = [arrApp objectAtIndex:i];
NSString* bundleId =[LSApplicationProxy applicationIdentifier];
NSProgress *progress = (NSProgress *)[LSApplicationProxy installProgress];
if (progress)
{
[NSString stringWithFormat:@"%@",[[progress userInfo] valueForKey:@"installState"]];
}
}
}
}
if (lib) dlclose(lib);
}