2016-03-29 20 views
0

どのアプリIDとデバイスIDの組み合わせでも一意のIDを取得するにはどうすればよいですか。たとえば、「アプリ」は「com.myapp」というパッケージ名を持ち、アンドロイドデバイスには一意のID(Wi-Fi MACアドレス、Bluetooth ID、UDIDなど)があります。これら2つの組み合わせはユニークでなければなりません。たとえアンインストールしてもう一度アプリケーションをインストールしても、同じIDが生成されるはずです。同じテクニックを使用していて、同じ電話機にある他のアプリがある場合、固有のIDはパッケージ名が異なるため、アプリと異なるはずです。また、別の携帯電話で同じアプリのIDを取得する必要があります。アンドロイドのアプリIDとデバイスIDを組み合わせた一意のID

私の目的に役立つネイティブに利用可能なIDはありますか?これについての助けをいただければ幸いです。 TIA。

答えて

0

あなたが今、あなたのアプリケーションのための一意のIDを取得することに伴い、アプリケーションのパッケージ名を追加

TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); 
String mDeviceID = telephonyManager.getDeviceId(); 

を使用する必要がありますお使いのデバイスIDを取得するには、この

public static String getUniqueDeviceId(Context mContext) { 
    String device_id = Settings.Secure.getString(
      mContext.getContentResolver(), Settings.Secure.ANDROID_ID); 
    if ((device_id == null) || (device_id.equals("9774d56d682e549c")) 
      || (device_id.length() < 15)) { 
     device_id = new BigInteger(64, new SecureRandom()).toString(16); 
    } 
    Log.d("device_id", device_id); 
    return device_id; 
} 
+0

ほんの少しの疑いも、なぜ我々は '9774d56d682e549c' で比較していますか? –

+0

Froyo(とおそらくEclair)のよく知られたバグで、異なるデバイスが同じID:9774d56d682e549cを返すでしょう。 https://code.google.com/p/android/issues/detail?id=10603とhttps://groups.google.com/forum/#!topic/android-developers/U4mOUI-rRPY thatsの理由をご覧くださいこのIDと比較する –

+0

この技術は、同じデバイスにある2つのアプリから異なるIDを取得するのに役立ちますか? – Sachin

0

を試してみてください。また、この固有の識別子は、アプリケーションをアンインストールして再インストールするときも同じです。

マニフェストにこの権限を追加することを忘れないでください。コメントありがとう@ deepu513。

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

+1

それは 'の許可を使用します。 –

+0

コメントありがとうございます。答えが更新されます。 –

関連する問題