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:
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)”.