2011-04-04 7 views
5

मैं सिस्टम पर स्थापित अनुप्रयोगों को सूचीबद्ध करने के लिए एक ऐप लिख रहा हूं। मैं अनुप्रयोगों की सूची प्राप्त करने के लिए PackageManager और queryIntentActivities() का उपयोग कर रहा हूं।एंड्रॉइड पर स्थापित एप्लिकेशन के लिए विवरण कैसे दिखाएं?

मैं इसे शुरू करने में सक्षम हूं, इसे अनइंस्टॉल कर रहा हूं (ACTION_DELETE का उपयोग करके), लेकिन मुझे नहीं पता कि विवरण कैसे दिखाएं (जहां उपयोगकर्ता रोक सकता है, एसडी कार्ड से/स्थानांतरित कर सकता है, डिस्क स्पेस उपयोग आदि देख सकता है)?

मैंने ACTION_VIEW की कोशिश की, लेकिन यह 2.1 पर अनइंस्टॉल संवाद भी दिखाता है (अभी तक अन्य संस्करणों की जांच नहीं की गई है)। मुझे एंड्रॉइड-डीई मेलिंग सूची पर अनुत्तरित प्रश्न को छोड़कर कुछ भी नहीं मिला।

उत्तर

3

एपीआई लेवल 9 (ए.के.ए., एंड्रॉइड 2.3) से शुरू, आप इसके लिए ACTION_APPLICATION_DETAILS_SETTINGS का उपयोग करने में सक्षम होना चाहिए। एंड्रॉइड के पिछले संस्करणों में इस स्क्रीन पर जाने का कोई तरीका नहीं है।

+0

धन्यवाद, इस 2.3 के लिए काम करता है। हालांकि, मैंने देखा कि उन्नत कार्य प्रबंधक जैसे ऐप्स इसे 2.2 (शायद कम भी) पर कर सकते हैं। तो मुझे लगता है कि यह> = 2.3 और पिछले संस्करणों के लिए हैक के किसी रूप में इस तरह से किया जा सकता है। – wojciechka

8

समाधान http://groups.google.com/group/android-developers/browse_thread/thread/1d4607eb370b1fe6/3cd4b85c310fe112?show_docid=3cd4b85c310fe112&pli=1 ऊपर जवाब और के साथ संयुक्त:

Intent intent; 

    if (android.os.Build.VERSION.SDK_INT >= 9) { 
     /* on 2.3 and newer, use APPLICATION_DETAILS_SETTINGS with proper URI */ 
     Uri packageURI = Uri.parse("package:" + pkgName); 
     intent = new Intent("android.settings.APPLICATION_DETAILS_SETTINGS", packageURI); 
     ctx.startActivity(intent); 
    } else { 
     /* on older Androids, use trick to show app details */ 
     intent = new Intent(Intent.ACTION_VIEW); 
     intent.setClassName("com.android.settings", "com.android.settings.InstalledAppDetails"); 
     intent.putExtra("com.android.settings.ApplicationPkgName", pkgName); 
     intent.putExtra("pkg", pkgName); 
     ctx.startActivity(intent);   
    } 
+0

कोड के पुराने एंड्रॉइड पर यह 'मुझे अपवाद देता है जब मैं इसे चलाने के लिए मजबूर करता हूं (2.3 पर)। 'स्पष्ट गतिविधि वर्ग नहीं ढूंढने में असमर्थ' – Peterdk

+0

कभी नहीं, 2.2 पर यह चलाता है। स्पष्ट रूप से कोड पथ 2.3+ पर काम नहीं करता है, लेकिन 2.2- पर करता है। – Peterdk

0

प्रयास करें इस

public static void openAppInfo(Context context, String packageName) 
{ 
    try 
    { 
     //Open the specific App Info page: 
     Intent intent = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS); 
     intent.setData(Uri.parse("package:" + packageName)); 
     context.startActivity(intent); 
    } 
    catch (ActivityNotFoundException e) 
    { 
     //Open the generic Apps page: 
     Intent intent = new Intent(android.provider.Settings.ACTION_MANAGE_APPLICATIONS_SETTINGS); 
     context.startActivity(intent); 
    } 
} 
संबंधित मुद्दे