2016-03-29 15 views
0

Herhangi bir uygulama kimliği ve cihaz kimliği için Benzersiz Kimliği nasıl alabilirim? Örneğin, bir uygulamanın paket adı "com.myapp" dır ve bir android cihazın benzersiz kimliği vardır (bu, wifi mac adresi, bluetooth kimliği veya UDID olabilir). Bu ikisinin kombinasyonu benzersiz olmalıdır. Uygulamayı tekrar yükleyip kursam bile, aynı kimlik oluşturulmalıdır. Aynı tekniği kullanan ve aynı telefonda olan başka uygulamalar varsa, benzersiz bir kimlik, farklı paket adlarına sahip oldukları için uygulamamdan farklı olmalıdır. Ayrıca, farklı bir telefonda aynı uygulamam için farklı bir kimlik almalıyım.Uygulama kimliği ve Android için Cihaz kimliği kombinasyonu ile benzersiz kimlik

Amaca hizmet edebilecek herhangi bir yerel kimlik var mı? Bu konuda herhangi bir yardım büyük takdir edilecektir. TIA.

cevap

0

Bu

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

sadece küçük bir şüphe, neden '9774d56d682e549c' ile karşılaştırdığınız? –

+0

Froyo (ve belki de Eclair) için bilinen bir böcek, bunun üzerine farklı cihazlar aynı kimliği döndürecektir: 9774d56d682e549c. Https://code.google.com/p/android/issues/detail?id=10603 ve https://groups.google.com/forum/#!topic/android-developers/U4mOUI-rRPY konularına bakın. Bu kimlikle karşılaştırın –

+0

Bu teknik, aynı cihazda ikamet eden 2 uygulamamdan farklı kimlikleri almama yardımcı olacak mı? – Sachin

0

cihazınızın kimliğini almak için uygulamanız için benzersiz kimliğini almak için Şimdi onunla birlikte uygulama paketi adını ekler

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

kullanmalıdır deneyin. Ve evet, uygulamanızı kaldırıp yeniden yüklediğinizde bu benzersiz tanımlayıcı aynı kalır.

Bu izni manifestinize eklemeyi unutmayın. Yorum için teşekkürler @ deepu513.

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

+1

izin kullanır ' –

+0

Yorum için teşekkürler. Cevap güncellendi. –

İlgili konular