みなさん、こんにちは!アプリケーション内で使用するために一意で安定したAndroidデバイス識別子を作成する必要がある場合は、ドキュメントとstackoverflowの回答に存在する混乱におそらく気づいたでしょう。2020年にこの課題に取り組む方法を見てみましょう。この簡単な概要では、アプリケーションの再インストールに耐性のある識別子を取得する場所と、将来どのような問題が発生する可能性があるかについて説明します。行く!
識別が必要な理由
最近、ユーザーデータのプライバシーに関する議論が勢いを増しています。おそらくこれは、広告大手の収益の増加によるものです。おそらく、これらの議論の下には、ユーザーとそのデバイスを特定する独占に関する懸念があります。したがって、Appleは、監視と戦い、すべての開発者がIDFAを使用することを制限する一方で、同時にそれ自体に制限することはありません。確かに言えることは、開発者がアプリケーションユーザーを特定するプロセスがより複雑になったことです。
IDベースのタスクには、返品分析、コンテンツと広告のパーソナライズ、および不正防止が含まれます。
後者の中には、いくつかの緊急の問題があります。
有料サブスクリプションまたは独自の有料コンテンツを使用するサービスの共有アカウント。NetflixやCourseraのようなサービスが、ユーザーが複数のユーザーに対して1つのアカウントを持っているという事実からどれだけ失われるか想像してみてください。
アカウントの盗難。
どちらの問題も、収益の損失または評判の損失につながります。それらのソリューションの信頼性は、デバイス識別の信頼性に直接依存します。
基本的な識別方法
ハードウェア識別子の使用
時代遅れで現在実行可能な方法ではありません。工場出荷時のリセット後も変更されないため、Googleはそれらへのアクセスをブロックするという優れた仕事をしました。そのような識別子の中で:
IMEI
IMSI
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, , .
質問や追加がある場合は、コメントで共有してください。そして、それはすべてです、あなたの注意に感謝します!