2016-08-20 8 views
0

私のアプリは常にDeviceIdを一意の識別子として使用していますが、これはもちろん許可のためにREAD_PHONE_STATEが必要です。これまでは大丈夫でしたが、私はMarshmellow 23に移行しました。この許可を求めると、実行時に非常に恐ろしいダイアログが表示されます...デバイスIDの代替としてのAndroid ID

「{my app}が通話を行い管理することを許可しますか?

これは、単にdeviceIdを取得したいアプリ向けの非常に恐ろしいメッセージです。

私はAndroid IDに切り替えることを考えています。これは許可を必要としないためです。

String androidId = Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID); 

Google検索私はアンドロイドIDを使用していくつかの問題があることがわかりましたが、それはすべて古いものです。 Froyoの時代には、すべての電話機で同じIDを生成した電話機ベンダーがいましたが、これは私が見たすべてのものです。

Android IDを使用しているすべての問題を認識していますか? ありがとう、 ディーン

答えて

1

どのユニークな識別子を使用するかは、識別子が必要な特定のユースケースに大きく依存します。 Best Practices for Unique Identifiers trainingは、多くの一般的な使用例と、どの識別子を使用するかを調べます。

1:ハードウェアIDの使用は避けてください。SSAID(Android ID)やIMEIなどのハードウェア識別子は、ほとんどの使用例では必要な機能を制限することなく避けることができます。

2:ユーザープロファイリングまたは広告ユースケースにのみ広告IDを使用します。広告IDを使用する場合は、常に広告トラッキング制限フラグを尊重し、個人識別情報(PII)にIDを接続できず、広告IDのリセットをブリッジしないようにしてください。

3:可能であれば、支払い不正防止と電話を除くすべてのユースケースについて、インスタンスIDまたは私的に保存されたGUIDを使用してください。非広告ユースケースの大部分については、インスタンスIDまたはGUIDで十分です。

4:プライバシーリスクを最小限に抑えるために、ユースケースに適したAPIを使用してください。高価値コンテンツ保護にはDRM API APIを使用し、不正使用防止にはSafetyNet APIを使用します。 Safetynet APIは、プライバシーの危険を伴うことなくデバイスが本物であるかどうかを判断する最も簡単な方法です。

大多数の場合、Android IDは依然として適切なものではありません。

+0

私はIMEIが試用版ソフトウェアを再インストールするのを防ぐための唯一の方法だと思っていますが、私の場合はUUIDがそのトリックを行います。答えをありがとう。 –

関連する問題