2012-03-29 4 views
11

मैं एक ऐप बना रहा हूं जिसमें मुझे पृष्ठभूमि में चल रहे ऐप्स के नाम दिखाना होगा। मैंने आर & डी पर किया और यह पता चला कि हम केवल ऐप्पल के ऐप्स जैसे फोटो, कैमरा इत्यादि के बारे में जान सकते हैं लेकिन मुझे नहीं पता था कि कैसे। कृपया मेरी मदद करो अगर आप जानते हैं पृष्ठभूमि एप्लिकेशन चालू पृष्ठभूमि प्रक्रिया चल के लिए मैं का उपयोग करने वाले सिर्फ नाम पाने के लिए निम्न विधिपृष्ठभूमि रनिंग ऐप्स के नाम कैसे प्राप्त करें

- (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; 
} 

आपको लगता है इसकी असंभव तो कृपया इस एप्लिकेशन http://itunes.apple.com/us/app/sys-activity-manager-for-memory/id447374159?mt=8 को एक नज़र है। मुझे एक समाधान भी मिला है लेकिन यह उचित तरीका नहीं है (मैंने इस प्रश्न के नीचे अंतिम टिप्पणी में उल्लेख किया है)।

धन्यवाद।

+0

यदि आप इस http://forrst.com/posts/UIDevice_Category_For_Processes-h1H –

+0

से गुजरते हैं तो शायद यह आपके उपरोक्त कोड में ProcessName कहां कहता है? –

+0

@AdamShiemke, यही कारण है कि प्रक्रियाओं को ऐप का नाम नहीं दे रहा है, प्रक्रियाओं का मतलब है कि सभी पृष्ठभूमि चल रही सेवाएं – HarshIT

उत्तर

0

मुझे नहीं लगता कि यह संभव है, लेकिन आपके जैसे अन्य लोग एक ही विषय में बहुत शामिल हुए हैं और कुछ कामकाज के साथ आते हैं। अधिक जानकारी के लिए इस ब्लॉग पोस्ट को पढ़ें: http://www.amitay.us/blog/files/how_to_detect_installed_ios_apps.php

+0

इस ऐप को आजमाएं http://itunes.apple.com/us/app/sys-activity-manager-for-memory/id447374159?mt=8 – HarshIT

+0

पिछली टिप्पणी पढ़ें मैंने नीचे पोस्ट किया है – HarshIT

+0

डेवलपर ने कोड से उसे खींच लिया पेज और यह अब उपलब्ध नहीं है – Justin

1

मुझे लगता है कि आईओएस में यह पता नहीं है कि कौन से ऐप्स पृष्ठभूमि में चल रहे हैं, क्योंकि आईओएस में कौन सा अग्रभूमि है, यह एक सक्रिय चल रहे ऐप्स और अन्य जिन्हें आप इन्हें प्राप्त कर रहे हैं सभी पृष्ठभूमि ऐप हैं।

इसलिए, आपके एप्लिकेशन नाम को छोड़कर अन्य पृष्ठभूमि ऐप्स हैं।

+0

http://itunes.apple.com/us/app/sys-activity-manager-for-memory/id447374159?mt=8 देखें। , यह ठीक काम करता है। इसका मतलब है कि यह संभव है – HarshIT

संबंधित मुद्दे