Есть более простой способ, чем другие ответы, который не требует, чтобы вы явно называли ресурс или беспокоились об исключениях с именами пакетов. Это также работает, если вы использовали строку напрямую вместо ресурса.
Просто сделать:
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как откат. Нет необходимости обертывать try / catch.
android:name. Если вы жестко запрограммировали строку, она не работает.