Existe una forma más fácil que las otras respuestas que no requiere que nombre el recurso explícitamente o se preocupe por las excepciones con los nombres de los paquetes. También funciona si ha utilizado una cadena directamente en lugar de un recurso.
Solo haz:
public static String getApplicationName(Context context) {
ApplicationInfo applicationInfo = context.getApplicationInfo();
int stringId = applicationInfo.labelRes;
return stringId == 0 ? applicationInfo.nonLocalizedLabel.toString() : context.getString(stringId);
}
Espero que esto ayude.
Editar
A la luz del comentario de Snicolas, modifiqué lo anterior para que no intente resolver la identificación si es 0. En su lugar, usa, nonLocalizedLabel
como un retroceso. No es necesario envolver en try / catch.
android:name
. Si codificó una cadena, falla.try ... catch
.Si no se menciona en strings.xml / codificado en AndroidManifest.xml por cualquier motivo, como android: label = "MyApp"
O si conoce el ID del recurso de cadena, puede obtenerlo directamente a través de
fuente
fuente
CharSequence
. Creo que necesitas.toString()
al final.Desde cualquier contexto de uso:
fuente
Si conoce el nombre del paquete, utilice el siguiente fragmento
fuente
Si solo necesita el nombre de la aplicación, no el nombre del paquete, simplemente escriba este código.
fuente
En Kotlin , use los siguientes códigos para obtener el nombre de la aplicación:
fuente
En Kotlin es simple:
fuente
Obtenga el nombre de la aplicación usando RunningAppProcessInfo como:
fuente
Bueno chicos, otra opción elegante es
Application.Context.ApplicationInfo.NonLocalizedLabel
verificado para la etiqueta de Android codificada en el elemento de la aplicación.
<application android:label="Big App"></application>
Referencia: http://developer.android.com/reference/android/content/pm/PackageItemInfo.html#nonLocalizedLabel
fuente
El comentario fuente agregado a
NonLocalizedLabel
nos dirige ahora a:fuente
¿Ha intentado utilizar el
PackageManager#getActivityInfo()
método? Habrá un campo que debe contener el nombre de la aplicación.Vea la respuesta a una pregunta muy similar aquí .
fuente