Kaynağı açıkça adlandırmanızı veya paket adlarıyla istisnalar hakkında endişelenmenizi gerektirmeyen diğer yanıtlardan daha kolay bir yol var. Ayrıca, bir kaynak yerine doğrudan bir dize kullandıysanız da çalışır.
Sadece yap:
public static String getApplicationName(Context context) {
ApplicationInfo applicationInfo = context.getApplicationInfo();
int stringId = applicationInfo.labelRes;
return stringId == 0 ? applicationInfo.nonLocalizedLabel.toString() : context.getString(stringId);
}
Bu yardımcı olur umarım.
Düzenle
Snicolas'tan gelen yorum ışığında, yukarıdakileri değiştirdim, böylece 0 ise kimliği çözmeyi denemeyecek. Bunun yerine, nonLocalizedLabelgeri çekilme olarak kullanıyor . Try / catch içinde sarmaya gerek yok.
android:name. Bir dizeyi sabit kodladıysanız, başarısız olur.