Android, cómo obtener el nombre del paquete?

En mi aplicación necesito saber el nombre del paquete. No tengo ningún problema cuando quiero agarrarlo en actividades pero no puedo tomarlo en otras clases. El código siguiente está trabajando en la actividad pero no sé porqué tiene problema en clase simple.

String packageName = getPackageName(); 

En mi clase intenté escribir este código:

 Context context = getApplicationContext(); String packageName = context.getPackageName(); 

Pero el compilador dijo que el método getApplicationContext() no está definido para esta clase.

¿Cómo puedo tomar el nombre del paquete dentro de esta clase?

La forma simple o de otra forma es pasar Contexto al constructor de clase auxiliar:

 MyClassConstructor(Context context){ String packageName = context.getPackageName(); } 

Usando la instancia de la clase puedes obtener el nombre del paquete usando getClass().getPackage().getName() a la instancia

Código de muestra

 ClassA instanceOfClass = new ClassA(); String packageName = instanceOfClass.getClass().getPackage().getName(); System.out.println("Package Name = " + packageName); 

Si utiliza gradle build, use esto: BuildConfig.APPLICATION_ID para obtener el nombre del paquete de la aplicación.

Utilice los siguientes

 ActivityManager am = (ActivityManager) getSystemService(Activity.ACTIVITY_SERVICE); String packageName2 = am.getRunningTasks(1).get(0).topActivity.getPackageName(); 

GetApplicationContext () es un método de ContextWrapper (super clase de actividad).

Si quieres usarlo en tus clases tendrás que pasar una referencia de un Contexto o su subclase y luego usarlo

http://developer.android.com/reference/android/content/ContextWrapper.html#getPackageName ()

 class MyClass { Context mContext; public MyClass(Context ctx) [ this.mContext = ctx; } String getPackageName() { mContext.getPackageName(); } } 

La respuesta más simple es hacer un constructor de nombre de clase y pasar el ApplicationContext en ese constructor –

 ClassConstructor(Context context){ String packageName = context.getPackageName(); } 
  • Obtener icono de otra aplicación de Android
  • ¿Cómo serializar un paquete?
  • Pasando las matrices usando bundle en android
  • Java.lang.NullPointerException en el paquete extras = data.getExtras ();
  • SavedInstanceState al restaurar el fragmento de la pila trasera
  • ¿Qué herramientas existen que ofrecen protección apk para android (contra la inversión y el reenvasado)?
  • Parcelable y herencia
  • Cambiar el paquete predeterminado de com.example para los proyectos de Android de Eclipse
  • Android: eliminar automáticamente las imágenes no utilizadas del conjunto de proyectos
  • SavedInstanceState siempre es nulo en fragmento
  • Cómo guardar y restaurar el estado de la vista android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.