Comment obtenir l’identifiant de l’application Android?

Dans Android, comment puis-je obtenir l’identifiant de l’application par programmation (ou par une autre méthode), et comment puis-je communiquer avec d’autres applications utilisant cet identifiant?

Si vous recherchez la valeur définie par applicationId dans gradle, vous pouvez simplement utiliser

 BuildConfig.APPLICATION_ID 

Si, par application id , vous faites référence au package name , vous pouvez utiliser la méthode Context::getPackageName ( http: // http: //developer.android.com/reference/android/content/Context.html#getPackageName%28 % 29 ).

Si vous souhaitez communiquer avec d’autres applications, il existe plusieurs façons:

  1. Démarrer une activité d’une autre application et envoyer des données dans les “Extras” de “Intent”
  2. Envoyer une émission avec une action / catégorie spécifique et envoyer des données dans les extras
  3. Si vous avez juste besoin de partager des données structurées, utilisez le fournisseur de contenu
  4. Si l’autre application doit être exécutée en permanence en arrière-plan, utilisez Server et “reliez-vous” au service.

Si vous pouvez élaborer votre exigence exacte, la communauté sera en mesure de mieux vous aider.

Je ne suis pas sûr de ce à quoi vous faites référence, mais pour un identifiant unique de votre application, vous pouvez utiliser:

Méthode getApplication (). getPackageName () à partir de votre activité en cours

Sinon, vous pouvez obtenir l’identifiant du processus dans lequel votre application s’exécute:

final statique int android.os.Process.myPid ()
Retourne l’identifiant de ce processus, qui peut être utilisé avec killProcess (int) et sendSignal (int, int).

Je ne suis pas sûr de ce que vous avez besoin de l’ID application / installation, mais vous pouvez examiner les possibilités existantes dans un excellent article des développeurs Android:

Pour résumer:

  • UUID.randomUUID() pour créer un identifiant la première fois qu’une application s’exécute après l’installation et la récupération simple après
  • TelephonyManager.getDeviceId() pour l’identifiant de périphérique actuel
  • Settings.Secure.ANDROID_ID sur des appareils relativement modernes

Le champ PackageInfo.sharedUserId affiche l’ID utilisateur atsortingbué dans le manifeste .

Si vous souhaitez que deux applications aient le même ID utilisateur, afin qu’elles puissent voir les données des autres et s’exécuter dans le même processus, leur atsortingbuer le même ID utilisateur dans le manifeste:

 android:sharedUserId="ssortingng" 

Les deux packages avec le même sharedUserId doivent également avoir la même signature.

Je recommande également de lire ici pour un coup de pouce dans la bonne direction.

Si l’objective est de communiquer des données avec une autre application, utilisez les méthodes sendBroadcast Intent.

Si vous utilisez le nouveau système de getPackageName ** Gradle, getPackageName retournera étrangement l’ID d’application, pas le nom du package. Donc, la réponse de MasterGaurav est correcte mais il n’a pas besoin de commencer avec ++

Si par identifiant d’application, vous faites référence au nom du paquet …

Voir plus sur les différences ici .

** pas si nouveau à ce stade

++ Je me rends compte que sa réponse était parfaitement logique en 2011

Android App ES Explorateur de fichiers affiche le nom du package Android dans la section Applications utilisateur, ce qui est utile pour Bitwarden. Bitwarden se réfère à cela comme “ID de package d’application Android (ou nom de package)”.