2009-08-12 21 views

Respuesta

2

No estoy seguro de lo que "ID de aplicación" se está refiriendo a, pero para un identificador único de su aplicación que puede utilizar:.

getApplication() método getPackageName() de su actividad actual

+2

cada aplicación instalada tiene un ID único ... ¿es posible obtener identificador único de una aplicación desde otra aplicación – arams

+2

¿no es 'getApplicationContext(). getPackageName()'? –

0

El campo PackageInfo.sharedUserId mostrará el ID de usuario asignado en el manifiesto.

Si desea que dos aplicaciones a tener el mismo ID de usuario, para que puedan ver los datos de cada uno y se ejecutan en el mismo proceso, a continuación, asignarles el mismo ID de usuario en el manifiesto:

android:sharedUserId="string" 

Los dos paquetes con el mismo sharedUserId necesita tener la misma firma también.

También recomendaría leer here para un empujón en la dirección correcta.

+0

2 aplicación diferente ¿utiliza el mismo nombre de paquete significa que las aplicaciones pueden compartir los datos? ... – arams

+0

No. Si dos aplicaciones tienen el mismo identificador de usuario compartido Y están firmadas con la misma firma, pueden compartir datos. El nombre del paquete no es un problema. – Will

0

Si todo el propósito es comunicar datos con alguna otra aplicación, use los métodos sendBroadcast de Intent.

1

lo que puede conseguir id del proceso de la aplicación se ejecuta en:

última int android.os.Process.myPid estática()
devuelve el identificador de este proceso, que puede ser utilizado con KillProcess (int) y sendSignal (int, int).

1

no estoy seguro de lo que necesita el ID de aplicación/instalación para, pero se puede opinar sobre las posibilidades existentes en un gran artículo de los desarrolladores de Android:

En resumen:

  • UUID.randomUUID() para la creación de ID en la primera vez que una aplicación se ejecuta después de la instalación y recuperación sencilla después
  • TelephonyManager.getDeviceId() de identificador de dispositivo real
  • Settings.Secure.ANDROID_ID en dispositivos relativamente modernas
30

Si por application id, se está refiriendo a package name, puede utilizar el método Context::getPackageName (http://http://developer.android.com/reference/android/content/Context.html#getPackageName%28%29).

En caso de que desee comunicarse con otra aplicación, hay múltiples maneras:

  1. iniciar una actividad de otra aplicación y enviar datos en los "extras" de la "intención"
  2. Enviar una emisión con acción específica/categoría y enviar datos en los extras
  3. Si solo necesita compartir datos estructurados, use el proveedor de contenido
  4. Si la otra aplicación necesita ejecutarse continuamente en segundo plano, use el Servidor y "enganche" usted mismo al Servicio.

Si puede elaborar su requerimiento exacto, la comunidad podrá ayudarlo mejor.

+0

¿Qué sucede si quiero mostrar una lista de aplicaciones y necesito tener la identificación como un entero, tal como lo necesitan todos los adaptadores de listas? Podría usar el tiempo de instalación, pero es de un tipo largo. ¿Aún sería útil ayudarlo? –

+2

nombre del paquete no siempre es applicationId, cuando lo configura a través de build.gradle! –

0

Si está utilizando el nuevo ** sistema de compilación Gradle, entonces getPackageName devolverá extrañamente Id de la aplicación, no el nombre del paquete. Así que la respuesta de MasterGaurav es correcta, pero él no necesita comenzar con ++

Si por el ID de la aplicación, se está refiriendo a empaquetar nombre ...

Ver más acerca de las diferencias here .

** no tan nuevo en este punto

++ Soy consciente de que su respuesta tenía sentido en 2011

50

Si estas buscando el valor definido por applicationId en Gradle, puede simplemente usar

BuildConfig.APPLICATION_ID 
+0

¡Gradle es tan bueno! Es un salvavidas. – hgoebl

+7

Esto no sería tan útil si estás escribiendo una biblioteca de Android –

Cuestiones relacionadas