¿Cómo puedo obtener el nombre del paquete en android?

Necesito escribir alguna clase de utilidad por mí mismo y necesito el nombre de paquete de la aplicación de Android. Mientras que encontré el packageManager que sólo se puede utilizar en la actividad y así sucesivamente que tiene contexto. Sólo quiero obtener nombre de paquete en mi clase que se utilizará en la aplicación de Android. Entonces, ¿cómo puedo hacer esto? ¡Gracias!

Uso: getPackageManager().getPackageInfo(getPackageName(), 0).packageName O simplemente MyContext.getPackageName()

También puede crear una función:

 public String getPackageName(Context context) { return context.getPackageName(); } 

La constante siguiente está disponible sin la necesidad de un contexto.

 BuildConfig.APPLICATION_ID 

Puede obtener el nombre del paquete de la aplicación instalada:

 ArrayList<PackageInfo> res = new ArrayList<PackageInfo>(); PackageManager pm = getApplicationContext().getPackageManager(); List<PackageInfo> packs = pm.getInstalledPackages(0); 

Y si quieres encontrar el nombre del paquete de tu aplicación:

 context.getPackageName(); 

getApplicationContext().getPackageName() le dará el nombre del paquete.

 List<ApplicationInfo> packages; PackageManager pm; pm = getPackageManager(); get a list of installed apps. packages = pm.getInstalledApplications(0); ActivityManager mActivityManager = (ActivityManager) context .getSystemService(Context.ACTIVITY_SERVICE); for (ApplicationInfo packageInfo : packages) { //packageInfo.packageName contains package name } 

He visto las dos formas siguientes para obtener el nombre del paquete a partir de una variable de contexto:

 context.getPackageManager().getPackageInfo(context.getPackageName(), 0).packageName 

y

 context.getPackageName() 

¿No darán siempre la misma respuesta? ¿Es preferible una manera de usar sobre la otra en ciertas circunstancias?

Puede crear una clase de utilidad de esta manera:

 public class AppInfo{ private static Context cxt; public static String PACKAGE_INFO; public static String init(Context context){ cxt = context; PACKAGE_INFO = cxt.getPackageName(); } } 

Entonces puedes usarlo de esta manera

 public class MyActivity extends Activity{ @Override public void onCreate(Bundle bundle){ ... AppInfo.init(getApplicationContext()); ... } } 

Entonces usted puede llamar de esta manera:

 public class someClass{ public void someMethod(){ String packageInfo = AppInfo.PACKAGE_INFO; //Do what you wish } } 

Creo que getPackageName() está disponible directamente dentro de la actividad sin llamar a getApplicationContext . Comprobado yo mismo. Trabajando bien.

  • Convertir objeto a JSON en Android
  • OpenGL "Error de operación no válido" Después de glDrawElements función en el teléfono Android
  • No se puede iniciar Android Studio
  • ¿Hay una manera rápida de reconocer códigos HTML ASCII en una cadena o TextView?
  • IOS como sobre el efecto de desplazamiento en Android
  • Kotlin android parcelable
  • ¿Cómo crear burbujas como las de la aplicación de Google+?
  • Significado de RuntimeException ("Stub!") En Android
  • Cómo agregar segunda tabla en la base de datos en sqlite?
  • ¿Cómo hacer una aplicación con cadenas realmente multilingüe?
  • No se puede vincular a cocos2dx utilizando eclipse para android en OSX
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.