2012-02-29 4 views
0

Когда я пытаюсь получить device_id моего Galaxy Tab GT-P1010, он возвращает значение null. Я использую device_id для идентификации уникального устройства в моей базе данных.Android: не получить уникальный Device_id на вкладке Samsung Galaxy

Я использую следующий код для этого:

String device_id; 

TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); 

device_id = telephonyManager.getDeviceId(); 

Здесь я получаю строку device_id пустой .. Этот код работает отлично для моих всех других устройств, HTC, LG, Google Nexxus ICS и т.д ..

Пожалуйста, дайте мне решение для него как можно скорее.

Спасибо, Jay Patel

ответ

2

Если ваше требование только для создания уникальной идентификации устройства, вы можете использовать следующий код:

UUID id=UUID.randomUUID(); 

//store this in shared pref  
String device_id=id.toString(); 

//later fetch it from share pref 
UUID Id=UUID.fromString(device_id); 

Это стандартный способ распознавания устройства в соответствии с RFC4122

+0

Отличный друг! Я нашел решение –

1

getDeviceId() возвращает IMEI устройства или MEID, который привязан к устройству SIM-карты. Похоже, ваш Galaxy Tab - это только устройство Wi-Fi, и у него нет SIM-карты; поэтому он не дает вам действительного идентификатора устройства.

К сожалению, нет способа получить идентификатор устройства с устройства Wi-Fi; Я бы предложил использовать ANDROID_ID или какой-либо другой идентификатор, если вы получите значение null для getDeviceId().

+0

ли гарантии того, что Идентификатор Android будет уникальным идентификатором. –

+0

Есть проблемы с ANDROID_ID, а именно: он может быть сброшен на устройстве, и он не является надежным предварительным Android 2.2. http://android-developers.blogspot.com/2011/03/identifying-app-installations.html Другими возможными идентификаторами являются MAC-адрес или аппаратный серийный номер, но у обоих из них также есть потенциальные проблемы. – triad

Смежные вопросы