Wie erhalte ich in Android die ID der Anwendung programmgesteuert (oder auf andere Weise) und wie kann ich mit dieser Anwendung mit anderen Anwendungen kommunizieren?
92
Wenn Sie nach dem applicationId
in gradle definierten Wert suchen, können Sie ihn einfach verwenden
BuildConfig.APPLICATION_ID
Wenn
application id
Sie sich auf beziehen,package name
können Sie die Methode verwendenContext::getPackageName
( http: // http: //developer.android.com/reference/android/content/Context.html#getPackageName%28%29 ).Wenn Sie mit einer anderen Anwendung kommunizieren möchten, gibt es mehrere Möglichkeiten:
Wenn Sie Ihre genauen Anforderungen erläutern können, kann Ihnen die Community besser helfen.
quelle
Context.getPackageName()
hat die Anwendungs - ID zurückgeben und nicht den Paketnamen (obwohl sie in der Regel die gleichen sind). Der etwas verwirrende Name der Methode ist Legacy. Quelle: developer.android.com/studio/build/application-idIch bin nicht sicher, auf welche "Anwendungs-ID" Sie sich beziehen, aber für eine eindeutige Kennung Ihrer Anwendung können Sie Folgendes verwenden:
Methode getApplication (). getPackageName () aus Ihrer aktuellen Aktivität
quelle
getApplicationContext().getPackageName()
?Paketname ist Ihre Android App ID.
String appId = BuildConfig.APPLICATION_ID
Oder
https://play.google.com/store/apps/details?id=com.whatsapp
App-ID = com.whatsapp
quelle
Schritt 1: Öffnen Sie den Google Play Store
Schritt 2: Öffnen Sie eine App im App Store. Beispiel: Facebook
Schritt 3: Klicken Sie auf einer App und Blick auf dem Browser - Link und am Ende id = com.facebook.katana & hl = en wird da sein und dies ist Ihre Apps eindeutige ID.
quelle
Andernfalls können Sie die ID des Prozesses abrufen, in dem Ihre Anwendung ausgeführt wird:
final static int android.os.Process.myPid ()
Gibt die Kennung dieses Prozesses zurück, die mit killProcess (int) und sendSignal (int, int) verwendet werden kann.
quelle
Ich bin nicht sicher, wofür Sie die App / Installations-ID benötigen, aber Sie können die vorhandenen Möglichkeiten in einem großartigen Artikel von Android-Entwicklern überprüfen:
Um zusammenzufassen:
UUID.randomUUID()
Zum erstmaligen Erstellen einer ID nach der Installation und zum anschließenden einfachen Abrufen einer AppTelephonyManager.getDeviceId()
für die tatsächliche GerätekennungSettings.Secure.ANDROID_ID
auf relativ modernen Gerätenquelle
Das
PackageInfo.sharedUserId
Feld zeigt die im Manifest zugewiesene Benutzer-ID an .Wenn Sie möchten, dass zwei Anwendungen dieselbe Benutzer-ID haben, damit sie die Daten des anderen sehen und im selben Prozess ausgeführt werden können, weisen Sie ihnen im Manifest dieselbe Benutzer-ID zu:
Die beiden Pakete mit derselben sharedUserId müssen ebenfalls dieselbe Signatur haben.
Ich würde auch empfehlen, hier zu lesen , um einen Anstoß in die richtige Richtung zu bekommen.
quelle
Wenn der gesamte Zweck darin besteht, Daten mit einer anderen Anwendung zu kommunizieren, verwenden Sie die sendBroadcast-Methoden von Intent.
quelle
Wenn Sie das neue ** Gradle-Build-System verwenden,
getPackageName
wird seltsamerweise die Anwendungs-ID und nicht der Paketname zurückgegeben. Die Antwort von MasterGaurav ist also richtig, aber er muss nicht mit ++ beginnenWeitere Informationen zu den Unterschieden finden Sie hier .
** derzeit nicht so neu
++ Mir ist klar, dass seine Antwort 2011 durchaus Sinn machte
quelle
Der Android App ES-Datei-Explorer zeigt den Namen des Android-Pakets im Abschnitt Benutzer-Apps an, der für Bitwarden nützlich ist. Bitwarden bezeichnet dies als "Android Application Package ID (oder Paketname)".
quelle
Um Installationen zu verfolgen, können Sie beispielsweise eine UUID als Kennung verwenden und einfach eine neue erstellen, wenn eine App nach der Installation zum ersten Mal ausgeführt wird. Hier ist eine Skizze einer Klasse mit dem Namen "Installation" mit einer statischen Methode "Installation.id" (Kontextkontext). Sie können sich vorstellen, mehr installationsspezifische Daten in die INSTALLATION-Datei zu schreiben.
}}
Weitere Informationen finden Sie unter https://github.com/MShoaibAkram/Android-Unique-Application-ID
quelle