Antworten:
Wenn Sie nach dem applicationIdin gradle definierten Wert suchen, können Sie ihn einfach verwenden
BuildConfig.APPLICATION_ID
Wenn application idSie sich auf beziehen, package namekönnen Sie die Methode verwenden Context::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.
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-id
Ich 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
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
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.
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.
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ätenDas PackageInfo.sharedUserIdFeld 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:
android:sharedUserId="string"
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.
Wenn Sie das neue ** Gradle-Build-System verwenden, getPackageNamewird seltsamerweise die Anwendungs-ID und nicht der Paketname zurückgegeben. Die Antwort von MasterGaurav ist also richtig, aber er muss nicht mit ++ beginnen
Wenn Sie sich nach Anwendungs-ID auf den Paketnamen beziehen ...
Weitere Informationen zu den Unterschieden finden Sie hier .
** derzeit nicht so neu
++ Mir ist klar, dass seine Antwort 2011 durchaus Sinn machte
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.
public class Installation {
private static String sID = null;
private static final String INSTALLATION = "INSTALLATION";
public synchronized static String id(Context context) {
if (sID == null) {
File installation = new File(context.getFilesDir(), INSTALLATION);
try {
if (!installation.exists())
writeInstallationFile(installation);
sID = readInstallationFile(installation);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
return sID;
}
private static String readInstallationFile(File installation) throws IOException {
RandomAccessFile f = new RandomAccessFile(installation, "r");
byte[] bytes = new byte[(int) f.length()];
f.readFully(bytes);
f.close();
return new String(bytes);
}
private static void writeInstallationFile(File installation) throws IOException {
FileOutputStream out = new FileOutputStream(installation);
String id = UUID.randomUUID().toString();
out.write(id.getBytes());
out.close();
}
}}
Weitere Informationen finden Sie unter https://github.com/MShoaibAkram/Android-Unique-Application-ID