获取手机中安装的所有App
2016-12-28 15:41
393 查看
1.获取手机中安装的所有App
1.1.runtime中的方法,所以要导入
#include<objc/runtime.h>
1.2.在AppDelegate.m文件中的- (BOOL)application:(UIApplication
*)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法中:
Class LSApplicationWorkspace_class =objc_getClass("LSApplicationWorkspace");
NSObject* workspace = [LSApplicationWorkspace_classperformSelector:@selector(defaultWorkspace)];
NSArray *allApplications = [workspaceperformSelector:@selector(allApplications)];//这样就能获取到手机中安装的所有App
打印出来是这样的:
2016-06-01 11:11:41.540 jqb[7537:2410265] app = <LSApplicationProxy: 0x1566a3c50> com.apple.mobilesms.notification <file:///Applications/MessagesNotificationViewService.app>
2016-06-01 11:11:41.541 jqb[7537:2410265] app = <LSApplicationProxy: 0x1566a5850> com.apple.mobilesms.c
4000
ompose <file:///Applications/MessagesViewService.app>
2016-06-01 11:11:41.541 jqb[7537:2410265] app = <LSApplicationProxy: 0x1566a60e0> com.apple.Fitness <file:///Applications/Fitness.app>
2016-06-01 11:11:41.541 jqb[7537:2410265] app = <LSApplicationProxy: 0x1566a6790> com.apple.Home.HomeUIService <file:///Applications/HomeUIService.app>
2016-06-01 11:11:41.541 jqb[7537:2410265] app = <LSApplicationProxy: 0x1566a6d60> com.apple.StoreDemoViewService <file:///Applications/StoreDemoViewService.app>
2016-06-01 11:11:41.541 jqb[7537:2410265] app = <LSApplicationProxy: 0x1566a7240> com.apple.videos <file:///Applications/Videos.app>
2016-06-01 11:11:41.541 jqb[7537:2410265] app = <LSApplicationProxy: 0x1566a7800> com.apple.social.SLGoogleAuth <file:///Applications/SLGoogleAuth.app>
2016-06-01 11:11:41.542 jqb[7537:2410265] app = <LSApplicationProxy: 0x1566a7c10> com.apple.mobileslideshow <file:///Applications/MobileSlideShow.app>
2016-06-01 11:11:41.542 jqb[7537:2410265] app = <LSApplicationProxy: 0x15654ed10> com.apple.Health <file:///Applications/Health.app>
2016-06-01 11:11:41.542 jqb[7537:2410265] app = <LSApplicationProxy: 0x15654f240> com.apple.news <file:///Applications/News.app>
2016-06-01 11:11:41.542 jqb[7537:2410265] app = <LSApplicationProxy: 0x15654fa30> com.apple.AccountAuthenticationDialog <file:///Applications/AccountAuthenticationDialog.app>
2016-06-01 11:11:41.542 jqb[7537:2410265] app = <LSApplicationProxy: 0x15654fff0> com.apple.purplebuddy <file:///Applications/Setup.app>
2016-06-01 11:11:41.542 jqb[7537:2410265] app = <LSApplicationProxy: 0x156550450> com.apple.social.SLYahooAuth <file:///Applications/SLYahooAuth.app>
2016-06-01 11:11:41.542 jqb[7537:2410265] app = <LSApplicationProxy: 0x156550930> com.apple.AdSheetPhone <file:///Applications/AdSheet.app>
2016-06-01 11:11:41.542 jqb[7537:2410265] app = <LSApplicationProxy: 0x156550ee0> com.apple.Diagnostics <file:///Applications/Diagnostics.app>
2.判断手机中是否安装了某个App
这就需要对我们获取到的[b]allApplications做一下处理,这个数组中装的并不是常规的字符串,我们可以从打印结果看出,是一个LSApplicationProxy类型的,我们要把这个转换成字符串,而且我们可以从打印结果看出,这个字符串中不只包含了App的bundle
ID,还包含了安装的路径,因为这个路径不唯一不确定,我们判断是否安装了某个App只需判断这个字符串中的[/b][b]bundle ID,所有我们还要对字符串做处理。[/b]
NSInteger zlConnt =0;
for (NSString
*appStr in allApplications) {
NSString
*app = [NSStringstringWithFormat:@"%@",appStr];//[b]转换成字符串[/b]
NSRange range = [apprangeOfString:@"org.ios.appprojuct.jqb”];//是否包含这个[b]bundle
ID[/b]
if (range.length
> 1) {
zlConnt ++;
}
}
if (zlConnt >=
1) {
NSLog(@"已安装金钱豹org.ios.appprojuct.jqb");
}
1.1.runtime中的方法,所以要导入
#include<objc/runtime.h>
1.2.在AppDelegate.m文件中的- (BOOL)application:(UIApplication
*)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法中:
Class LSApplicationWorkspace_class =objc_getClass("LSApplicationWorkspace");
NSObject* workspace = [LSApplicationWorkspace_classperformSelector:@selector(defaultWorkspace)];
NSArray *allApplications = [workspaceperformSelector:@selector(allApplications)];//这样就能获取到手机中安装的所有App
打印出来是这样的:
2016-06-01 11:11:41.540 jqb[7537:2410265] app = <LSApplicationProxy: 0x1566a3c50> com.apple.mobilesms.notification <file:///Applications/MessagesNotificationViewService.app>
2016-06-01 11:11:41.541 jqb[7537:2410265] app = <LSApplicationProxy: 0x1566a5850> com.apple.mobilesms.c
4000
ompose <file:///Applications/MessagesViewService.app>
2016-06-01 11:11:41.541 jqb[7537:2410265] app = <LSApplicationProxy: 0x1566a60e0> com.apple.Fitness <file:///Applications/Fitness.app>
2016-06-01 11:11:41.541 jqb[7537:2410265] app = <LSApplicationProxy: 0x1566a6790> com.apple.Home.HomeUIService <file:///Applications/HomeUIService.app>
2016-06-01 11:11:41.541 jqb[7537:2410265] app = <LSApplicationProxy: 0x1566a6d60> com.apple.StoreDemoViewService <file:///Applications/StoreDemoViewService.app>
2016-06-01 11:11:41.541 jqb[7537:2410265] app = <LSApplicationProxy: 0x1566a7240> com.apple.videos <file:///Applications/Videos.app>
2016-06-01 11:11:41.541 jqb[7537:2410265] app = <LSApplicationProxy: 0x1566a7800> com.apple.social.SLGoogleAuth <file:///Applications/SLGoogleAuth.app>
2016-06-01 11:11:41.542 jqb[7537:2410265] app = <LSApplicationProxy: 0x1566a7c10> com.apple.mobileslideshow <file:///Applications/MobileSlideShow.app>
2016-06-01 11:11:41.542 jqb[7537:2410265] app = <LSApplicationProxy: 0x15654ed10> com.apple.Health <file:///Applications/Health.app>
2016-06-01 11:11:41.542 jqb[7537:2410265] app = <LSApplicationProxy: 0x15654f240> com.apple.news <file:///Applications/News.app>
2016-06-01 11:11:41.542 jqb[7537:2410265] app = <LSApplicationProxy: 0x15654fa30> com.apple.AccountAuthenticationDialog <file:///Applications/AccountAuthenticationDialog.app>
2016-06-01 11:11:41.542 jqb[7537:2410265] app = <LSApplicationProxy: 0x15654fff0> com.apple.purplebuddy <file:///Applications/Setup.app>
2016-06-01 11:11:41.542 jqb[7537:2410265] app = <LSApplicationProxy: 0x156550450> com.apple.social.SLYahooAuth <file:///Applications/SLYahooAuth.app>
2016-06-01 11:11:41.542 jqb[7537:2410265] app = <LSApplicationProxy: 0x156550930> com.apple.AdSheetPhone <file:///Applications/AdSheet.app>
2016-06-01 11:11:41.542 jqb[7537:2410265] app = <LSApplicationProxy: 0x156550ee0> com.apple.Diagnostics <file:///Applications/Diagnostics.app>
2.判断手机中是否安装了某个App
这就需要对我们获取到的[b]allApplications做一下处理,这个数组中装的并不是常规的字符串,我们可以从打印结果看出,是一个LSApplicationProxy类型的,我们要把这个转换成字符串,而且我们可以从打印结果看出,这个字符串中不只包含了App的bundle
ID,还包含了安装的路径,因为这个路径不唯一不确定,我们判断是否安装了某个App只需判断这个字符串中的[/b][b]bundle ID,所有我们还要对字符串做处理。[/b]
NSInteger zlConnt =0;
for (NSString
*appStr in allApplications) {
NSString
*app = [NSStringstringWithFormat:@"%@",appStr];//[b]转换成字符串[/b]
NSRange range = [apprangeOfString:@"org.ios.appprojuct.jqb”];//是否包含这个[b]bundle
ID[/b]
if (range.length
> 1) {
zlConnt ++;
}
}
if (zlConnt >=
1) {
NSLog(@"已安装金钱豹org.ios.appprojuct.jqb");
}
相关文章推荐
- 获取Android手机里所有已安装的APP
- IOS开发 获取手机所有安装app列表,提交appstore 请慎用
- 获取Android手机里所有已安装的APP
- 获取手机安装的所有App列表,并获取到App图标。
- 获取手机所有安装APP的信息
- 获取手机安装的所有app列表
- 获取手机已经安装的所有App的信息
- 如何获取已经安装到苹果手机上的App信息
- 获取手机中安装的所有应用程序
- Android获取所有安装APP信息的详细代码
- 获取手机中所有已安装的应用,并判断是否系统应用
- 获取手机里已经安装的app信息
- IOS 获取当前设备安装的所有App
- 获取手机中安装的所有应用程序
- 获取手机里所有的app并点击相应的图标开启相应的程序
- iPhone获取手机里面所有的APP(私有库)+ 通过包名打开应用
- [Android Pro] 获取手机已经安装的应用 和 获取当前正在运行的所有进程(一个uid对应多个pid)
- 获取当前安装的所有App
- Android如何获取手机上面已经安装的app
- 获取手机中安装的所有应用程序