Получить код IMEI или / и Mac-адрес устройства - PullRequest
2 голосов
/ 17 мая 2011

Я реализую способ уникальной идентификации устройства.

Архитектор отправил мне следующие спецификации:

устройства с Wifi + 3G: код IMEI

устройства Wifi only - MacAddress

Оба требуют также производителя + модель для завершения идентификатора.

Мои вопросы:

  1. Как получить IMEI с устройства?

  2. Как узнать производителя и модель устройства? (Я вижу некоторые константы в классе Build для него, но не знаю, где их использовать)

  3. Есть устройства только с 3G?

  4. Как я могу узнать, работает ли устройство только с wifi, wifi + 3g или 3g, только если существует?

Также доступны предложения по уникальным идентификаторам.

PS: я уже могу получить MacAddres через WifiManager.

Ответы [ 4 ]

2 голосов
/ 17 мая 2011

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

Команда разработчиков Android попыталась решить эти проблемы непосредственно в своем блоге здесь:http://android -developers.blogspot.com / 2011/03 / identifying-app-Installation.html

В ответ на ваш последний вопрос: просто проверьте на ноль при запросе SIM / MAC/ Что угодно, а затем действовать соответственно.Сообщалось, что есть случаи, когда MAC вернет ноль;см. мою первую ссылку.

2 голосов
/ 17 мая 2011
  1. Как получить IMEI можно найти в этом вопросе: Как программно получить IMEI / ESN устройства в Android? ;
  2. ИЗГОТОВИТЕЛЬ и МОДЕЛЬ можно получить из android.os.BUILD class.
  3. Теоретически, да, могут быть устройства без Wi-Fi, но с 3G. Но я не видел ни одного.
  4. Если getSystemService(WIFI_SERVICE) возвращает null, Wi-Fi отсутствует.
2 голосов
/ 17 мая 2011
  1. android.telephony.TelephonyManager.getDeviceId () возвращает вам «IMEI для GSM и MEID или ESN для телефонов CDMA».

  2. Build.MODELявляется статическим полем, так что вы можете просто использовать его таким образом, если вы сначала импортировали android.os.Build.

  3. Вполне возможно.

  4. Вы можете попробовать вызвать Context.getSystemService (Context.WIFI_SERVICE) и посмотреть, если он нулевой, хотя я предполагаю, что возможно, что служба все еще существует, даже если нет Wi-Fi (в таком случае, я бы ожидал проверитьWi-Fi, чтобы вернуться отключен.)

2 голосов
/ 17 мая 2011

Вы можете использовать метод getDeviceID TelephonyManager.Это должно вернуть IMEI или MEID.Для получения информации о сборке вы можете увидеть android.os.Build и android.os.Build.VERSION.Кроме того, если речь идет об уникальной идентификации установок вашего приложения, вы, возможно, захотите просмотреть (и / или показать своему архитектору) сообщение в блоге разработчика на Определение установок приложения

...