2016-09-01 15 views
2

次の条件を満たすデバイスIDを生成する必要があります。Androidデバイスでユニークで一貫性のあるデバイスIDを取得する方法

普遍的なユニークです。 これは同じ(可能な限り)、つまり同じデバイスにとどまっています。 最小の権限が必要です。 転送して保存することは合法です。 解決策は、ハードウェアIDでアクセス権があり、特別なアクセス権がなく、ワイヤでハッシュされ、送信される場合があります。


P.S.デバイスはルーツにしてはいけません。キーチェーンや他の場所には何も保存したくありません。その場で生成し、それが生成されているアプリケーションとは独立して、そのままにしてください。また、工場出荷時のリセットや他のまれな機会にリセットすることもできます。

+0

imei番号はデバイスに関して一意でなければなりません – dex

+0

インスタンスIDを使用します:https://developers.google.com/instance-id/ –

+0

もう一つのオプション: 'String imsi = android.os.SystemProperties.get android.telephony.TelephonyProperties.PROPERTY_IMSI); ' –

答えて

0
private String getIMEINumber() { 
    TelephonyManager mngr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
    return mngr.getDeviceId(); 

} 

とマニフェストファイル内:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 

IMEIは、すべてのデバイス

たり、MACアドレスを取得することができますのためのユニークである:

WifiManager wifiManager (WifiManager)getSystemService(Context.WIFI_SERVICE); 
WifiInfo wInfo = wifiManager.getConnectionInfo(); 
String macid = wInfo.getMacAddress(); 

は、追加することを忘れないでください。許可:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 
+0

しかし、それは単一の装置のために複数であることができます –

+0

デフォルトでは、複数のものが利用可能で他のものがアクセス可能でない場合には最初のものをとります –

関連する問題