2013-06-06 6 views
5

यदि मैं पहले से ही लक्ष्य एपीके का पैकेज नाम जानता हूं तो मैं प्रोग्राम का सटीक फ़ाइल नाम प्राप्त करना चाहता हूं। उदाहरण के लिए, अगर मुझे अपने एपीके का पैकेज नाम पता है, जो com.packagename है, तो मैं उस पैकेज का सटीक पथ और फ़ाइल नाम कैसे प्राप्त कर सकता हूं? बीटीडब्ल्यू, मैं सिर्फ अपना एपीके स्थान नहीं प्राप्त करना चाहता हूं, मैं किसी भी पैकेज नाम का स्थान चाहता हूं जो मैं लागू करता हूं। SystemTuner समर्थक ऐसा करने में सक्षम है इसलिए मुझे पता है कि यह संभव है, बस सुनिश्चित नहीं है कि कैसे।मैं एपीके फ़ाइल नाम और पथ प्रोग्रामेटिक रूप से कैसे प्राप्त कर सकता हूं?

धन्यवाद दोस्तों!

उत्तर

4

PackageManager.getPackageInfo() पैकेज के बारे में जानकारी देता है, और PackageInfo.applicationInfo फ़ील्ड को एप्लिकेशन के बारे में जानकारी की आवश्यकता है।

+2

ध्यान दें कि अधिक हालिया या भविष्य में एंड्रॉइड पर गंतव्य एपीके फाइलों को रिलीज़ किया गया है, इसलिए पता चला है कि अन्य तृतीय पक्ष ऐप्स द्वारा अब तक पहुंच योग्य नहीं हो सकता है। –

3

ठीक है, मैं यूरी को जवाब के रूप में चिह्नित करना चाहता हूं लेकिन मुझे पहले से ही उस सामान के बारे में पता था। इसलिए मैं PackageManager.ApplicationInfo से प्रत्येक और हर विकल्प के माध्यम से चला गया और .publicSourceDir

पाया तो मेरे सवाल का कोड के साथ एक पूरा जवाब,

PackageManager pm = getPackageManager(); 
    try { 
     ApplicationInfo ai = pInfo.getApplicationInfo(<packageName here>, 0); 
     String sourceApk = ai.publicSourceDir; 
    } catch (NameNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

तो धन्यवाद फिर से लोगों को हो सकता है एक बार फिर से प्यार StackOverflow जा मेरे मस्तिष्क मिल गया है!

+1

यदि आप "पहले से ही उस सामान के बारे में जानते थे" तो आपने शायद अपने प्रश्न में ऐसा कहा होगा और जो जवाब आपको नहीं पता था, उसके लिए एक उत्तर प्राप्त हुआ। –

+0

वैसे मैंने कहा था कि मुझे पता था कि पैकेज का नाम कैसे प्राप्त करें .. क्षमा करें .. – Seth

+0

सीथ, आपने प्रोग्राम के सटीक फ़ाइल नाम और पैकेज के सटीक पथ और फ़ाइल नाम के बारे में पूछा। इसे ध्यान में रखते हुए, एप्लिकेशनइन्फो सबसे अच्छा जवाब था जिसे मैं सोच सकता था, मैं और अधिक सटीक नहीं हो सकता :) – Y2i

3
/** 
* Get the apk path of this application. 
* @param context any context (e.g. an Activity or a Service) 
* @return full apk file path, or null if an exception happened (it should not happen) 
*/ 
public static String getApkName(Context context) { 
    String packageName = context.getPackageName(); 
    PackageManager pm = context.getPackageManager(); 
    try { 
     ApplicationInfo ai = pm.getApplicationInfo(packageName, 0); 
     String apk = ai.publicSourceDir; 
     return apk; 
    } catch (Throwable x) { 
    } 
    return null; 
} 
+0

दोस्तों, मैंने इसे नीचे देखा है। क्या यह अभी भी आधुनिक Androids पर काम करता है? – 18446744073709551615

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

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