2013-12-09 2 views

답변

0

짧은 답변 : NO

긴 답 : 그냥 탈옥을 사용.

+0

어떻게 내가 본때를 아이폰에 싶어합니다. –

0

아니요. 각 앱은 자체 샌드 박스에서 격리됩니다. 다른 개발자가 아닌 앱의 앱에 대한 사용 정보 만 수신 할 수 있습니다. 그리고 그 기능을 직접 추가해야합니다. 이 코드에서

+0

@SaurabhJain https://apple.stackexchange.com/a/110431 참조 – neilco

1

이 과정

- (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) 
     { 

      array = [[NSMutableArray alloc] init]; 

      for (int i = nprocess - 1; i >= 0; i--) 
      { 

       processID = [[NSString alloc] initWithFormat:@"%d", process[i].kp_proc.p_pid]; 
       processName = [[NSString alloc] initWithFormat:@"%s", process[i].kp_proc.p_comm]; 
       NSString * processStartTime = [[NSString alloc] initWithFormat:@"%ld", process[i].kp_proc.p_starttime.tv_sec]; 
       NSString * priority = [[NSString alloc] initWithFormat:@"%hhu", process[i].kp_proc.p_priority]; 
       NSString * status = [[NSString alloc] initWithFormat:@"%d", process[i].kp_proc.p_stat]; 

       NSDictionary * dict = [[NSDictionary alloc] initWithObjects:[NSArray arrayWithObjects:processID, processName,processStartTime,priority,status, nil] forKeys:[NSArray arrayWithObjects:@"ProcessID", @"ProcessName",@"Time", @"Priority",@"Status", nil]]; 
       [array addObject:dict]; 
       NSLog(@"PID %d",process[i].kp_proc.p_pid); 
      } 

      free(process); 
      NSLog(@"Array %@",array); 
     } 
    } 
} 
return nil; 

}의 시작 시간을 얻을 수있는

인용문

관련 문제