Получить серийный номер устройства Android
Мне нужно получить серийный аппаратный код устройства Android, на котором установлено мое приложение. Этот серийный номер оборудования вы можете увидеть на Settings > About Device > Status > Serial number
,
Я хотел бы получить это, используя Settings.Secure.ANDROID_ID or android.os.Build.SERIAL
, но ни один из них не сработал, то есть они не дали мне уникальный идентификатор, который я ищу. Например android.os.Build.SERIAL
получил уникальный идентификатор, показанный на ADB, когда вы запускаете команду устройства adb.
Обратите внимание, что цель этого вопроса не в том, чтобы найти другой уникальный идентификатор, который мог бы мне помочь, а в том, чтобы получить серийный номер оборудования устройства.
Спасибо за помощь.
РЕДАКТИРОВАТЬ:
Пожалуйста, будьте уверены, что я не ищу значение, предоставленное String android.os.BUILD.SERIAL. Я знаю, как получить это значение, но мне это не интересно.
У меня есть устройство Samsung, поэтому серийный номер, который они использовали, отличается от номера, предоставленного android.os.BUILD.SERIAL.
1 ответ
Решение очень простое:
Class<?> c = Class.forName("android.os.SystemProperties");
Method get = c.getMethod("get", String.class, String.class);
serialNumber = (String) get.invoke(c, "sys.serialnumber", "Error");
if(serialNumber.equals("Error")) {
serialNumber = (String) get.invoke(c, "ril.serialnumber", "Error");
}
Это даст вам серийный номер большинства устройств Samsung. Я использую значение "sys.serialnumber", чтобы получить серийный номер моих планшетов SM-T210 (Galaxy Tab 3) и SM-T230 (Galaxy Tab 4), но, вероятно, работает с гораздо большим количеством планшетов Samsung. "Ril.serialnumber" предназначен для получения значения на моем Samsung GT-I8550L (Galaxy Win).
Надеюсь, это поможет.