Di Android, bagaimana cara mendapatkan id aplikasi secara terprogram (atau dengan metode lain), dan bagaimana saya bisa berkomunikasi dengan aplikasi lain menggunakan id itu?
Jawaban:
Jika Anda mencari nilai yang ditentukan oleh applicationIddalam gradle, Anda dapat menggunakan
BuildConfig.APPLICATION_ID
Jika menurut application id, yang Anda maksud package name, Anda dapat menggunakan metode Context::getPackageName( http: // http: //developer.android.com/reference/android/content/Context.html#getPackageName%28%29 ).
Jika Anda ingin berkomunikasi dengan aplikasi lain, ada beberapa cara:
Jika Anda dapat menjelaskan kebutuhan Anda secara tepat, komunitas akan dapat membantu Anda dengan lebih baik.
Context.getPackageName() tidak mengembalikan ID aplikasi dan tidak nama paket (meskipun mereka biasanya sama). Nama metode yang agak membingungkan adalah warisan. Sumber: developer.android.com/studio/build/application-id
Saya tidak yakin "id aplikasi" apa yang Anda maksud, tetapi untuk pengenal unik aplikasi Anda, Anda dapat menggunakan:
getApplication (). getPackageName () dari aktivitas Anda saat ini
getApplicationContext().getPackageName()?
Nama paket adalah id aplikasi android Anda.
String appId = BuildConfig.APPLICATION_ID
Atau
https://play.google.com/store/apps/details?id=com.whatsapp
ID Aplikasi = com.whatsapp
Langkah 1: Buka Google Play Store
Langkah 2: Buka Aplikasi apa pun di App Store Contoh: facebook
Langkah 3: Klik pada Aplikasi apa saja dan Lihat tautan Peramban dan Di Akhir id = com.facebook.katana & hl = en akan ada di sana dan ini adalah Id Unik Aplikasi Anda.
Jika tidak, Anda bisa mendapatkan id dari proses yang dijalankan aplikasi Anda:
final static int android.os.Process.myPid ()
Mengembalikan pengenal dari proses ini, yang bisa digunakan dengan killProcess (int) dan sendSignal (int, int).
Saya tidak yakin untuk apa Anda memerlukan ID aplikasi / penginstalan, tetapi Anda dapat meninjau kemungkinan yang ada di artikel bagus dari pengembang Android:
Untuk menyimpulkan:
UUID.randomUUID() untuk membuat id saat pertama kali aplikasi dijalankan setelah instalasi dan pengambilan sederhana setelahnyaTelephonyManager.getDeviceId() untuk pengenal perangkat sebenarnyaSettings.Secure.ANDROID_ID pada perangkat yang relatif modernThe PackageInfo.sharedUserIdlapangan akan menunjukkan Id pengguna ditugaskan di manifes .
Jika Anda ingin dua aplikasi memiliki userId yang sama, sehingga mereka dapat melihat data satu sama lain dan berjalan dalam proses yang sama, kemudian tetapkan userId yang sama di manifes:
android:sharedUserId="string"
Dua paket dengan sharedUserId yang sama harus memiliki tanda tangan yang sama juga.
Saya juga merekomendasikan membaca di sini untuk dorongan ke arah yang benar.
Jika keseluruhan tujuan adalah untuk mengkomunikasikan data dengan beberapa aplikasi lain, gunakan metode sendBroadcast Intent.
Jika Anda menggunakan sistem build Gradle ** yang baru, maka getPackageNamesecara aneh akan mengembalikan ID aplikasi, bukan nama paket. Jadi jawaban MasterGaurav benar tetapi dia tidak perlu memulai dengan ++
Jika menurut id aplikasi, Anda mengacu pada nama paket ...
Lihat lebih lanjut tentang perbedaannya di sini .
** tidak begitu baru saat ini
++ Saya menyadari bahwa jawabannya masuk akal pada tahun 2011
Android App ES File Explorer menampilkan nama paket Android di bagian Aplikasi Pengguna yang berguna untuk Bitwarden. Bitwarden merujuk ini sebagai "ID paket aplikasi android (atau nama paket)".
Untuk melacak penginstalan, misalnya Anda dapat menggunakan UUID sebagai pengenal, dan cukup membuat yang baru saat pertama kali aplikasi dijalankan setelah penginstalan. Berikut adalah sketsa dari kelas bernama “Instalasi” dengan satu metode statis Installation.id (Konteks konteks). Anda bisa membayangkan menulis lebih banyak data khusus instalasi ke dalam file INSTALASI.
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();
}
}
Yon dapat melihat lebih lanjut di https://github.com/MShoaibAkram/Android-Unique-Application-ID