1. 使用canOpenURL判断
- NSURL *instagramURL = [NSURL URLWithString:@"instagram://location?id=1"];
- BOOL hasInstagram = [[UIApplication sharedApplication] canOpenURL:instagramURL];
此方法需要定义URLSchemes
2. UIDevice Category For Processes
- // .h
-
- @interface UIDevice (ProcessesAdditions)
- - (NSArray *)runningProcesses;
- @end
-
- // .m
- #import <sys/sysctl.h>
-
- @implementation UIDevice (ProcessesAdditions)
-
- - (NSArray *)runningProcesses {
-
- int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_ALL, 0};
- size_t miblen = 4;
-
- size_t size;
- int st = sysctl(mib, miblen, NULL, &size, NULL, 0);
-
- struct kinfo_proc * process = NULL;
- struct kinfo_proc * newprocess = NULL;
-
- do {
-
- size += size / 10;
- newprocess = realloc(process, size);
-
- if (!newprocess){
-
- if (process){
- free(process);
- }
-
- return nil;
- }
-
- process = newprocess;
- st = sysctl(mib, miblen, process, &size, NULL, 0);
-
- } while (st == -1 && errno == ENOMEM);
-
- if (st == 0){
-
- if (size % sizeof(struct kinfo_proc) == 0){
- int nprocess = size / sizeof(struct kinfo_proc);
-
- if (nprocess){
-
- NSMutableArray * array = [[NSMutableArray alloc] init];
-
- for (int i = nprocess - 1; i >= 0; i--){
-
- NSString * processID = [[NSString alloc] initWithFormat:@"%d", process[i].kp_proc.p_pid];
- NSString * processName = [[NSString alloc] initWithFormat:@"%s", process[i].kp_proc.p_comm];
-
- NSDictionary * dict = [[NSDictionary alloc] initWithObjects:[NSArray arrayWithObjects:processID, processName, nil]
- forKeys:[NSArray arrayWithObjects:@"ProcessID", @"ProcessName", nil]];
- [processID release];
- [processName release];
- [array addObject:dict];
- [dict release];
- }
-
- free(process);
- return [array autorelease];
- }
- }
- }
-
- return nil;
- }
-
- @end
-
- // Example usage.
- NSArray * processes = [[UIDevice currentDevice] runningProcesses];
- for (NSDictionary * dict in processes){
- NSLog(@"%@ - %@", [dict objectForKey:@"ProcessID"], [dict objectForKey:@"ProcessName"]);
- }
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。