Di Android, bagaimana cara mendapatkan id aplikasi secara terprogram (atau dengan metode lain), dan bagaimana saya bisa berkomunikasi dengan aplikasi lain menggunakan id itu?
93
Jika Anda mencari nilai yang ditentukan oleh applicationId
dalam gradle, Anda dapat menggunakan
BuildConfig.APPLICATION_ID
Jika menurut
application id
, yang Anda maksudpackage name
, Anda dapat menggunakan metodeContext::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.
sumber
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-idSaya tidak yakin "id aplikasi" apa yang Anda maksud, tetapi untuk pengenal unik aplikasi Anda, Anda dapat menggunakan:
getApplication (). getPackageName () dari aktivitas Anda saat ini
sumber
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
sumber
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.
sumber
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).
sumber
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 modernsumber
The
PackageInfo.sharedUserId
lapangan 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.
sumber
Jika keseluruhan tujuan adalah untuk mengkomunikasikan data dengan beberapa aplikasi lain, gunakan metode sendBroadcast Intent.
sumber
Jika Anda menggunakan sistem build Gradle ** yang baru, maka
getPackageName
secara aneh akan mengembalikan ID aplikasi, bukan nama paket. Jadi jawaban MasterGaurav benar tetapi dia tidak perlu memulai dengan ++Lihat lebih lanjut tentang perbedaannya di sini .
** tidak begitu baru saat ini
++ Saya menyadari bahwa jawabannya masuk akal pada tahun 2011
sumber
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)".
sumber
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
sumber
Untuk mendapatkan AppId (atau nama paket, menurut beberapa orang), panggil saja ini:
Namun pastikan Anda mengimpor
BuildConfig
dengan jalur paket id aplikasi AndaBuildConfig.APPLICATION_ID
sumber