2009-08-12 4 views

Répondre

2

Je ne suis pas sûr de ce que "id application" vous faites référence, mais pour un identifiant unique de votre application, vous pouvez utiliser:. Méthode getPackageName()

getApplication() de votre activité actuelle

+2

chaque application installée ont un identifiant unique ... est-il possible d'obtenir l'identifiant unique d'une application autre application – arams

+2

est pas 'getApplicationContext(). getPackageName()'? –

0

Le champ PackageInfo.sharedUserId affichera l'ID utilisateur affecté dans le manifeste.

Si vous voulez deux applications pour avoir la même userId, afin qu'ils puissent se voir de données et exécuter dans le même processus, puis leur attribuer le même userId dans le manifeste:

android:sharedUserId="string" 

Les deux paquets avec le même sharedUserId doit également avoir la même signature.

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

+0

2 applications différentes utilisent le même nom de paquet signifie que les applications peuvent partager les données? ... – arams

+0

Non. Si deux applications ont le même shareUserId ET sont signées avec la même signature, les données peuvent être partagées. Le nom du package n'est pas un problème. – Will

0

Si le but est de communiquer des données avec une autre application, utilisez les méthodes sendBroadcast d'Intent.

1

Sinon vous pouvez obtenir votre identifiant de processus application fonctionne dans:

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

1

Je ne sais pas ce que vous avez besoin de l'application/ID d'installation pour, mais vous pouvez passer en revue les possibilités existantes dans un article de développeurs Android:

En résumé:

  • UUID.randomUUID() pour créer id sur la première fois une application fonctionne après l'installation et la récupération facile après
  • TelephonyManager.getDeviceId() pour identifier l'appareil réel
  • Settings.Secure.ANDROID_ID sur relativement appareils modernes
30

Si par application id, vous faites référence à 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 une autre application, il existe plusieurs façons:

  1. Démarrer une activité d'une autre application et envoyer des données dans les « Extras » du « intention »
  2. Envoyer une émission avec 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 s'exécuter en arrière-plan en continu, utilisez Serveur et "liez" un service.

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

+0

Et si je veux afficher une liste d'applications et que j'ai besoin de l'id comme un entier, comme tous les adaptateurs de listes ont besoin? Je pourrais utiliser l'heure d'installation, mais c'est un type long. Est-ce que le lancer à int aiderait encore? –

+2

nom du package n'est pas toujours applicationId, lorsque vous le définissez via build.gradle! –

0

Si vous utilisez le nouveau système de compilation ** Gradle, alors getPackageName retournera curieusement l'identifiant de l'application, et non le nom du paquet. Donc, la réponse de MasterGaurav est correct, mais il n'a pas besoin de commencer aveC++

Si par identifiant d'application, vous faites référence Nom du package ...

En savoir plus sur les différences here .

** pas si nouvelle à ce moment

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

50

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

BuildConfig.APPLICATION_ID 
+0

Gradle est si bon! C'est un épargnant de vie. – hgoebl

+7

Cela ne serait pas très utile si vous écrivez une bibliothèque Android –

Questions connexes