En Android, ¿cómo obtengo la identificación de la aplicación de forma programática (o mediante algún otro método) y cómo puedo comunicarme con otras aplicaciones usando esa identificación?
92
Si está buscando el valor definido por applicationId
en gradle, simplemente puede usar
BuildConfig.APPLICATION_ID
Si
application id
se refiere apackage name
, puede utilizar el métodoContext::getPackageName
( http: // http: //developer.android.com/reference/android/content/Context.html#getPackageName%28%29 ).En caso de que desee comunicarse con otra aplicación, existen varias formas:
Si puede elaborar su requisito exacto, la comunidad podrá ayudarlo mejor.
fuente
Context.getPackageName()
hace volver el ID de aplicación y no el nombre del paquete (a pesar de que suelen ser los mismos). El nombre algo confuso del método es heredado. Fuente: developer.android.com/studio/build/application-idNo estoy seguro de a qué "ID de aplicación" te refieres, pero para un identificador único de tu aplicación puedes usar:
getApplication (). getPackageName () método de su actividad actual
fuente
getApplicationContext().getPackageName()
?El nombre del paquete es su ID de aplicación de Android.
String appId = BuildConfig.APPLICATION_ID
O
https://play.google.com/store/apps/details?id=com.whatsapp
ID de aplicación = com.whatsapp
fuente
Paso 1: abre Google Play Store
Paso 2: Abra cualquier aplicación en App Store Ejemplo: facebook
Paso 3: Haga clic en cualquier aplicación y mire el enlace del navegador y al final id = com.facebook.katana & hl = en estará allí y esta es su identificación única de aplicaciones.
fuente
De lo contrario, puede obtener la identificación del proceso en el que se ejecuta su aplicación:
final static int android.os.Process.myPid ()
Devuelve el identificador de este proceso, que se puede usar con killProcess (int) y sendSignal (int, int).
fuente
No estoy seguro de para qué necesita la aplicación / ID de instalación, pero puede revisar las posibilidades existentes en un excelente artículo de los desarrolladores de Android:
Para resumir:
UUID.randomUUID()
para crear una identificación la primera vez que se ejecuta una aplicación después de la instalación y una recuperación simple despuésTelephonyManager.getDeviceId()
para el identificador de dispositivo realSettings.Secure.ANDROID_ID
en dispositivos relativamente modernosfuente
El
PackageInfo.sharedUserId
campo mostrará la identificación de usuario asignada en el manifiesto .Si desea que dos aplicaciones tengan el mismo ID de usuario, para que puedan ver los datos de la otra y ejecutarse en el mismo proceso, entonces asígneles el mismo ID de usuario en el manifiesto:
Los dos paquetes con el mismo sharedUserId también deben tener la misma firma.
También recomendaría leer aquí para un empujón en la dirección correcta.
fuente
Si todo el propósito es comunicar datos con alguna otra aplicación, use los métodos sendBroadcast de Intent.
fuente
Si está utilizando el nuevo sistema de compilación ** Gradle, entonces
getPackageName
, extrañamente, devolverá el ID de la aplicación, no el nombre del paquete. Entonces, la respuesta de MasterGaurav es correcta, pero no necesita comenzar con ++Vea más sobre las diferencias aquí .
** no es tan nuevo en este momento
++ Me doy cuenta de que su respuesta tenía perfecto sentido en 2011.
fuente
Android App ES File Explorer muestra el nombre del paquete de Android en la sección Aplicaciones de usuario que es útil para Bitwarden. Bitwarden se refiere a esto como "ID del paquete de la aplicación de Android (o nombre del paquete)".
fuente
Para realizar un seguimiento de las instalaciones, puede, por ejemplo, usar un UUID como identificador y simplemente crear uno nuevo la primera vez que se ejecuta una aplicación después de la instalación. A continuación se muestra un esquema de una clase denominada "Instalación" con un método estático Installation.id (contexto de contexto). Puede imaginar escribir más datos específicos de la instalación en el archivo INSTALACIÓN.
}
Puede ver más en https://github.com/MShoaibAkram/Android-Unique-Application-ID
fuente