Есть более простой способ, чем другие ответы, который не требует, чтобы вы явно называли ресурс или беспокоились об исключениях с именами пакетов. Это также работает, если вы использовали строку напрямую вместо ресурса.
Просто сделать:
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
. Если вы жестко запрограммировали строку, она не работает.try ... catch
.Если это не указано в strings.xml / жестко закодировано в AndroidManifest.xml по какой-либо причине, например android: label = "MyApp"
Или, если вы знаете идентификатор ресурса String, вы можете напрямую получить его через
источник
источник
CharSequence
. Думаю, тебе нужно.toString()
на конец.Из любого контекста использования:
источник
Если вы знаете имя пакета, используйте следующий фрагмент
источник
Если вам нужно только имя приложения, а не имя пакета, просто напишите этот код.
источник
В Kotlin используйте следующие коды для получения имени приложения:
источник
В Котлине все просто:
источник
Получить имя приложения, используя RunningAppProcessInfo как:
источник
Хорошо, ребята, еще один изящный вариант -
Application.Context.ApplicationInfo.NonLocalizedLabel
проверено для жестко закодированной метки Android на элементе приложения.
<application android:label="Big App"></application>
Ссылка: http://developer.android.com/reference/android/content/pm/PackageItemInfo.html#nonLocalizedLabel
источник
Комментарий источника, добавленный в,
NonLocalizedLabel
направляет нас к следующему:источник
Вы пробовали использовать
PackageManager#getActivityInfo()
метод? Будет поле, которое должно содержать название приложения.См. Ответ на очень похожий вопрос здесь .
источник