¿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!
- C ++ ifstream.getline () significativamente más lento que BufferedReader.readLine () de Java?
- ¿Es onResume () llamado antes onActivityResult ()?
- Cómo establecer los valores de la interfaz de usuario en fragmento
- ¿Por qué no funciona gmail oauth en mi aplicación para Android?
- Cámara Android: ¿Hilos? Que debe hacer lo que
- Recuperar una lista de países del sistema operativo Android
- Tabulaciones de la barra de herramientas de Android y enfoque del teclado
- Problema al extraer el número de puerto con URL.getPort () cuando la URL contiene "]"
- Verificando servidores Verisign certificates throws No es una excepción de certificado de servidor de confianza
- buena json lib como ios JSONModel
- Android: ¿Una forma sencilla de hacer una geofence?
- NoClassDefFoundError: android.support.v7.internal.view.menu.MenuBuilder
- ¿Cómo puedo obtener la ubicación GPS actual?
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.