Tôi đang tạo một ứng dụng mà tôi cần hiển thị tên của ứng dụng đang chạy ở chế độ nền. Tôi đã làm R & D trên đó và đến để biết rằng chúng ta chỉ có thể biết về các ứng dụng của Apple như Photos, Camera, vv Nhưng tôi không thể biết làm thế nào. Xin hãy giúp tôi nếu bạn biết làm thế nào để có được JUST TÊN CÁC VẤN ĐỀ ỨNG DỤNG CHẠY Đối với các quá trình nền chạy Tôi đã sử dụng sau Phương phápCách lấy tên của ứng dụng chạy nền
- (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;
}
Nếu bạn nghĩ không thể của nó thì vui lòng có một cái nhìn vào ứng dụng này http://itunes.apple.com/us/app/sys-activity-manager-for-memory/id447374159?mt=8. Tôi cũng đã có một giải pháp nhưng nó không phải là một cách thích hợp (tôi đã đề cập trong bình luận cuối cùng bên dưới câu hỏi này).
Cảm ơn.
Bạn đã trải qua http://forrst.com/posts/UIDevice_Category_For_Processes-h1H –
Có lẽ nó nói ProcessName trong mã trên của bạn ở đâu? –
@AdamShiemke, đó là những gì đang đưa ra các quy trình không NAME của ứng dụng, quy trình có nghĩa là tất cả các dịch vụ chạy nền – HarshIT