Получить серийный номер устройства 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).

Надеюсь, это поможет.

Другие вопросы по тегам