अन्य उत्तरों की तुलना में एक आसान तरीका है जो आपको संसाधन को स्पष्ट रूप से नाम देने या पैकेज नामों के साथ अपवादों के बारे में चिंता करने की आवश्यकता नहीं है। यह भी काम करता है यदि आपने संसाधन के बजाय सीधे स्ट्रिंग का उपयोग किया है।
बस करो:
public static String getApplicationName(Context context) {
ApplicationInfo applicationInfo = context.getApplicationInfo();
int stringId = applicationInfo.labelRes;
return stringId == 0 ? applicationInfo.nonLocalizedLabel.toString() : context.getString(stringId);
}
उम्मीद है की यह मदद करेगा।
संपादित करें
Snicolas की टिप्पणी के आलोक में, मैंने उपरोक्त को संशोधित किया है ताकि यह आईडी को हल करने का प्रयास न करे यदि यह 0. है। इसके बजाय इसका उपयोग nonLocalizedLabelबैकऑफ़ के रूप में किया जाता है। कोशिश / पकड़ में लपेटने के लिए कोई ज़रूरत नहीं है।
android:name। यदि आप एक स्ट्रिंग को हार्डकोड करते हैं, तो यह विफल हो जाता है।