2009-08-12 6 views

risposta

2

Non sono sicuro di quello che "application id" ti riferisci, ma per un identificatore univoco della vostra applicazione è possibile utilizzare:.

getApplication() il metodo getPackageName() dalla vostra attività in corso

+2

ogni applicazione installata disporre di un ID unico ... è possibile ottenere l'ID univoco di un'applicazione da un'altra applicazione – arams

+2

non è 'getApplicationContext(). getPackageName()'? –

0

Il campo PackageInfo.sharedUserId mostrerà l'ID utente assegnato nel manifest.

Se si vuole due applicazioni per avere lo stesso userId, in modo che possano vedere i dati di ciascuno ed eseguire nello stesso processo, quindi assegnare loro lo stesso userId nel manifesto:

android:sharedUserId="string" 

I due pacchetti con lo stesso sharedUserId deve avere anche la stessa firma.

Vorrei anche raccomandare di leggere here per una spinta nella giusta direzione.

+0

2 diverse applicazioni usano lo stesso nome del pacchetto significa, le applicazioni possono condividere i dati? ... – arams

+0

No. Se due applicazioni hanno lo stesso shareUserId e sono firmate con la stessa firma, possono condividere i dati. Il nome del pacchetto non è un problema. – Will

0

Se l'intero scopo è comunicare i dati con altre applicazioni, utilizzare i metodi sendBroadcast di Intent.

1

altro si può ottenere id del processo l'applicazione viene eseguita in:

int android.os.Process.myPid static finale()
restituisce l'identificatore di questo processo, che può essere utilizzato con KillProcess (int) e sendSignal (int, int).

1

io non sono sicuro di quello che è necessario l'ID app/installazione per, ma è possibile rivedere le possibilità esistenti in un grande articolo da parte degli sviluppatori di Android:

Riassumendo:

  • UUID.randomUUID() per la creazione di id la prima volta un app viene eseguito dopo l'installazione e semplice il recupero in seguito
  • TelephonyManager.getDeviceId() per identificatore del dispositivo attuale
  • Settings.Secure.ANDROID_ID sui dispositivi relativamente moderni
30

Se per application id, ti riferisci a package name, è possibile utilizzare il metodo Context::getPackageName (http://http://developer.android.com/reference/android/content/Context.html#getPackageName%28%29).

Nel caso in cui si desidera comunicare con altre applicazioni, ci sono diversi modi:

  1. Inizio un'attività di un'altra applicazione e invia i dati nel "Extra" della "intenti"
  2. Invia una trasmissione
  3. Se hai solo bisogno di condividere i dati strutturati, usa il provider di contenuti
  4. Se l'altra applicazione deve essere eseguita continuamente in background, usa Server e "collega" te stesso al servizio.

Se è possibile elaborare il proprio requisito esatto, la comunità sarà in grado di aiutarvi meglio.

+0

Cosa fare se voglio mostrare un elenco di app e ho bisogno di avere l'id come numero intero, proprio come tutti gli adattatori di lista hanno bisogno? Potrei usare il tempo di installazione, ma è di un tipo lungo. L'intenzione di lanciarla su int è ancora d'aiuto? Il nome del pacchetto –

+2

non è sempre applicationId, quando lo si imposta tramite build.gradle! –

0

Se si utilizza il nuovo sistema di generazione Gradle, quindi getPackageName restituirà in modo anomalo l'ID applicazione, non il nome pacchetto. Quindi, la risposta di MasterGaurav è corretto, ma non ha bisogno di iniziare con ++

Se per applicazione id, ti riferisci a confezionare nome ...

Vedi di più sulle differenze here .

** non così nuovo, a questo punto

++ mi rendo conto che la sua risposta aveva perfettamente senso nel 2011

50

Se stai cercando per il valore definito da applicationId in Gradle, si può semplicemente utilizzare

BuildConfig.APPLICATION_ID 
+0

Gradle è così buono! È un risparmiatore di vita. – hgoebl

+7

Questo non sarebbe così utile se stai scrivendo una libreria Android –

Problemi correlati