Как узнать название модели устройства? [Дубликат]

На этот вопрос уже есть ответ здесь:

Получить Android Phone Model программно 14 ответов

Как узнать название модели устройства? У меня есть Yuphoria 5010, который отображает YU5010 в номере модели устройства. Я хочу получить полное имя устройства? Я хочу получить точную строку, указанную ниже:

Юфория 5010 6,0 Зефир

Ответы на вопрос(4)

Используйте этот код для получения модели устройства

import android.os.Build;

String deviceModel = Build.MODEL;

если вы хотите получить эту информацию в Android 6.0 Marshmellow, так что перед этим получить информацию, дайте разрешение времени выполнения

Manifest.permission.READ_PHONE_STATE

На многих популярных устройствах рыночное название устройства недоступно. Например, в Samsung Galaxy S6 значение Build.MODEL может быть «SM-G920F», «SM-G920I» или «SM-G920W8». Так что для получения полного имени устройства вы можете использовать библиотеку, которая доступна на github. Ссылка AndroidDeviceLibrary находится здесьhttps://github.com/shubhamsharmacs/AndroidDeviceNames

Теперь, как использовать эти библиотеки: - поместите их в свой файл build.gradle

compile 'com.jaredrummler:android-device-names:1.0.9'

Теперь эти операции:

Получить имя текущего устройства:

String deviceName = DeviceName.getDeviceName();

Приведенный выше код получит правильное имя устройства для 600 лучших устройств Android. Если устройство не распознано, возвращается Build.MODEL. Это может быть выполнено из потока пользовательского интерфейса.

Получить имя устройства, используя кодовое имя устройства:

// Retruns "Moto X Style"
DeviceName.getDeviceName("clark", "Unknown device");

Получить информацию об устройстве:

DeviceName.with(context).request(new DeviceName.Callback() {

  @Override public void onFinished(DeviceName.DeviceInfo info, Exception error) {
    String manufacturer = info.manufacturer;  // "Samsung"
    String name = info.marketName;            // "Galaxy S7 Edge"
    String model = info.model;                // "SAMSUNG-SM-G935A"
    String codename = info.codename;          // "hero2lte"
    String deviceName = info.getName();       // "Galaxy S7 Edge"
    // FYI: We are on the UI thread.
  }
});

Приведенный выше код загружает JSON из сгенерированного списка имен устройств на основе поддерживаемого списка Google. Он будет соответствовать списку поддерживаемых устройств Google, чтобы вы могли получить правильное имя для новых или неизвестных устройств. Это поддерживает более 10000 устройств.

Это будет сделать сетевой вызов только один раз. Значение сохраняется в SharedPreferences для будущих вызовов.

 Troy Stopera03 авг. 2019 г., 18:43
Не обманывайте себя - эта библиотека была обновлена. Ссылка здесь на форк настоящей библиотеки. Настоящая библиотека (github.com/jaredrummler/AndroidDeviceNames) был обновлен в июне!
 dazed22 нояб. 2018 г., 22:20
Это хорошее решение, но библиотека не обновлялась с 2016 года. Поэтому новых устройств нет. Это должно быть обновлено по крайней мере один раз в год, чтобы иметь реальную ценность.
 Shubham Sharma02 июл. 2016 г., 09:45
это также правильный ответ @jim
Решение Вопроса

Это было действительно просто, просто позвоните:

String model = Build.MODEL;

Обновление: этот код напечатает ту строку, которую вы запросили:

String reqString = Build.MANUFACTURER
                + " " + Build.MODEL + " " + Build.VERSION.RELEASE
                + " " + Build.VERSION_CODES.class.getFields()[android.os.Build.VERSION.SDK_INT].getName();

Печать:

Samsung Note 4 6,0 маршмеллоу

LGE LG-D410 4.4.2 KITKAT

Вы можете получить информацию об устройстве, используя приведенный ниже код.

String s="Debug-infos:\n";
s += "OS Version: " + System.getProperty("os.version") + "(" + android.os.Build.VERSION.INCREMENTAL + ")\n";
s += "OS API Level: " + android.os.Build.VERSION.RELEASE + "(" + android.os.Build.VERSION.SDK_INT + ")\n";
s += "Device: " + android.os.Build.DEVICE + "\n";
s += "Model (and Product): " + android.os.Build.MODEL + " ("+ android.os.Build.PRODUCT + ")\n";

Ваш ответ на вопрос