Является ли android.os.Build.SERIAL уникальным?
Я хотел бы использовать уникальный идентификатор для Android-устройства, который работает для телефона и планшета.
(IMEI не работает без SIM-карты и когда-то MAC-адрес возвращает null)
Я не уверен, что isroid.os.Build.SERIAL уникален или нет.
Кто-нибудь знает об этом?
Спасибо,
С наилучшими пожеланиями.
Ответы
Ответ 1
Да, но обратите внимание, что он был добавлен только в уровне API 9, и он может отсутствовать на всех устройствах. Чтобы получить уникальный идентификатор на более ранних платформах, вам нужно прочитать что-то вроде MAC-адреса или IMEI.
Как правило, попробуйте прочитать все возможные идентификаторы и использовать доступную информацию. См. эту статью для руководства.
Ответ 2
Serial был открыт только в API: 9. но вы можете получить его в старых версиях, используя отражение. Однако в документах упоминается "если доступно", поэтому я думаю, что не полагайтесь на него.
String deviceSerial = (String) Build.class.getField("SERIAL").get(
null);
Ответ 3
Я думаю, что для уникального Id вы должны использовать android Id.
Ниже приведен код для получения идентификатора Android.
String android_id = Secure.getString(this.getContentResolver(),
Secure.ANDROID_ID);
Log.d("Android","Android ID : "+android_id);
Ответ 4
Если есть, то ожидаемый будет уникальным. Но нет гарантии, что это свойство установлено. Также это API 9. К сожалению, нет простого способа однозначно идентифицировать устройство. Некоторые свойства, такие как указанный SERIAL , могут, другие, такие как ANDROID_ID, как НЕ уникальные, некоторые другие, такие как MAC, зависят от наличия WIFI или его состояния (если модуль Wi-Fi выключен, возможно, вы не сможете прочитать его MAC). Некоторым вроде IMEI не может быть прочитано даже устройство, получившее телефонный модуль. Таким образом, лучший подход состоит в том, чтобы собрать как можно больше данных, и попытаться создать что-то, что вы могли бы скорее всего рассмотреть уникальный идентификатор устройства
Ответ 5
Вы можете использовать Build serial and android ID, чтобы создать свой собственный уникальный идентификатор.
String serial = Build.SERIAL;
String android_id =Secure.getString(context.getContentResolver(),
Secure.ANDROID_ID);
String myKey=serial +android_id ;
Ответ 6
Как насчет комбинации MAC, IMEI и SERIAL?
Вам просто нужно иметь дело с тем, что все они могут быть несуществующими esp. на старых телефонах без SIM-карты.
Я просто считаю странным, что MAC вернет null. Это не должно быть возможным imho, поскольку нет никакого смысла в том, что мобильное устройство не имеет MAC.
Возможны 2 MAC-адреса, но в некоторых случаях они могут быть недоступны.