Halo semuanya! Jika Anda perlu membuat pengenal perangkat Android yang unik dan stabil untuk digunakan di dalam aplikasi, Anda mungkin memperhatikan kekacauan yang ada dalam dokumentasi dan jawaban di stackoverflow . Mari kita lihat cara mengatasi tantangan ini di tahun 2020. Dalam ikhtisar singkat ini, di mana mendapatkan pengenal yang tahan untuk menginstal ulang aplikasi Anda, dan kesulitan apa yang mungkin terjadi di masa mendatang. Pergilah!
Mengapa identifikasi diperlukan
Baru-baru ini, diskusi tentang privasi data pengguna menjadi populer dengan cepat. Mungkin ini karena meningkatnya pendapatan raksasa periklanan. Mungkin di bawah diskusi ini ada kekhawatiran tentang monopoli yang mengidentifikasi pengguna dan perangkat mereka. Jadi, Apple, saat memerangi pengawasan dan membatasi semua pengembang untuk menggunakan IDFA, pada saat yang sama tidak membatasi itu sendiri . Apa yang bisa dikatakan dengan pasti: proses mengidentifikasi pengguna aplikasi untuk pengembang menjadi lebih rumit.
Tugas berbasis identifikasi meliputi: analitik pengembalian, personalisasi konten dan iklan, dan pencegahan penipuan.
Di antara yang terakhir, ada beberapa masalah mendesak:
Akun bersama di layanan dengan langganan berbayar atau konten berbayar unik. Bayangkan saja betapa banyak kerugian layanan seperti Netflix atau Coursera ketika pengguna memiliki satu akun untuk beberapa orang.
Pencurian akun.
Kedua masalah tersebut menyebabkan hilangnya pendapatan atau hilangnya reputasi. Keandalan solusi mereka secara langsung bergantung pada keandalan identifikasi perangkat.
Metode identifikasi dasar
Menggunakan pengenal perangkat keras
Metode yang ketinggalan zaman dan saat ini tidak layak. Google telah melakukan pekerjaan yang baik dengan memblokir akses ke mereka karena mereka tidak berubah bahkan setelah reset pabrik. Di antara pengenal tersebut:
IMEI
IMSI
Alamat MAC
. , , Play Market. , . .
, : , .
UUID
cookie: , ( SharedPreferences), . , cookie — . .
- . — . (app instance ID).
,
ANDROID_ID. , , , . Android 8.0 , — . ( ).
, . ( ) Google . , , ( 2020 ).
:
<uses-permission android:name="com.google.android.providers.gsf.permission.READGSERVICES" />
:
public static String getGsfAndroidId(Context context) {
String params[] = { ID_KEY };
Cursor c = context.getContentResolver().query(URI, null, null, params,
null);
if (!c.moveToFirst() || c.getColumnCount() < 2)
return null;
try {
return Long.toHexString(Long.parseLong(c.getString(1)));
} catch (NumberFormatException e) {
return null;
}
}
: ContentProvider-a, Google. , Google . , .. Play Market.
. , , Xposed, ANDROID_ID, GSF_ID. , .
(fingerprint)
device-fingerprinting , . — FingerprintJS — 13 GitHub. cookie.
( ).
- Android-. 4 . Samsung? , 600 . Samsung , Android 9? 150 . , ? , , . 25000 . , . — , . , .
Android, , , , , .
, . .
— ( ANDROID_ID), . — .
— . , . , , . — , .
, .
, . ? , . .
— . , . , . , android-arsenal, , .
Android-device-identification — . , , , ANDROID_ID, Build. , 2 , . , , .
Fingerprint-android — . 2 : getDeviceId getFingerprint. GSF_ID ANDROID_ID, , , . getFingerprint — . . , Kotlin, .
, , ANDROID_ID GSF_ID. Android, , .
Jika Anda memiliki pertanyaan atau tambahan - bagikan di komentar. Dan itu saja, terima kasih atas perhatiannya!