2013-06-01 3 views
72

Как получить уникальный идентификатор устройства в Android, который нельзя изменить при выполнении сброса телефона или обновления ОС?Как получить уникальный идентификатор устройства в Android?

+3

чек из [ссылка] (HTTP: // StackOverflow.com/a/2853253) – CRUSADER

+0

Почему вы хотите и что говорят ваши R & D? –

ответ

123

Вы проверить этот блог в ссылке ниже

http://android-developers.blogspot.in/2011/03/identifying-app-installations.html

ANDROID_ID

import android.provider.Settings.Secure; 

private String android_id = Secure.getString(getContext().getContentResolver(), 
                Secure.ANDROID_ID); 

Выше по ссылке @Is there a unique Android device ID?

Более конкретно, Settings.Secure.ANDROID_ID. Это 64-разрядное количество, которое генерируется и сохраняется при первом загрузке устройства. Сбрасывается при стирании устройства.

ANDROID_ID кажется хорошим выбором для уникального идентификатора устройства. Есть недостатки: во-первых, он не на 100% надежен в выпусках Android до 2.2 («Froyo»). Кроме того, по крайней мере одна широко известная ошибка в популярном телефоне от крупного производителя, где каждый экземпляр имеет тот же ANDROID_ID.

Приведенное ниже решение не является хорошим решением ценность выдержит влажные салфетки устройства («заводские сбрасывает»), и поэтому вы можете сделать неприятную ошибку, когда один из ваших клиентов вытирает свое устройство и передает его другому лицу.

Вы получаете номер IMEI устройства, используя ниже

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

http://developer.android.com/reference/android/telephony/TelephonyManager.html#getDeviceId%28%29

Добавить это проявляется

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

Осталось ли это после перезагрузки или обновления телефона? –

+5

IMEI для телефонной трубки не должен меняться после момента изготовления. Это предполагает, что устройство является телефоном - не хорошее предположение. – DrC

+2

В моем комментарии говорится, что это не релевантный ответ, он, возможно, нашел это решение в Интернете или уже реализован, поскольку в потоке stackoverflow уже существует много потоков. Но его вопрос говорит «уникальный идентификатор устройства, который нельзя изменить при перезагрузке телефона или обновлении os» –

-26

Мы можем легко получить идентификатор устройства, используя String id = android.os.Build.ID;

+14

Это дает вам версию сборки операционной системы, а не идентификатор устройства. – marcelnijman

+0

это что-то забавное? Это просто версия для сборки Android, а не идентификатор физического устройства. –

1

Прочтите это официальное сообщение b войти запись на Google блоге разработчиков: http://android-developers.blogspot.be/2011/03/identifying-app-installations.html

Заключение Для подавляющего большинства применений, требование является для идентификации конкретной установки, а не физическое устройство. К счастью, делать это просто.

Существует много веских причин избежать попытки идентифицировать конкретное устройство . Для тех, кто хочет попробовать, лучший подход вероятно использование ANDROID_ID на что-либо достаточно современный, с некоторые резервные эвристики для устаревших устройств

.

19

Я использую следующий код для получения идентификатора Android.

String android_id = Secure.getString(this.getContentResolver(), 
      Secure.ANDROID_ID); 

Log.d("Android","Android ID : "+android_id); 

enter image description here

+9

Да ANDROID_ID отлично, но в соответствии с документом: *** Это 64-разрядное количество, которое генерируется и сохраняется при первом запуске устройства. Он сбрасывается при стирании устройства. *** –

+1

Спасибо за ответ. Но ANDROID_ID изменен при перезагрузке устройства. Мне нужен id, который зависит от ч/б и не изменяется на os. – PrvN

+0

Знаете ли вы, как я могу получить тот же идентификатор, который выдается непосредственно с моего телефона? (например, я хотел получить IMEI, я бы просто набрал: * # 06 #) – AnixPasBesoin

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