Как узнать название устройства Android? Я использую HTC desire. Когда я подключил его через HTC Sync, программа отображает имя "HTC Smith". Я хотел бы получить это имя с помощью кода.
Как это возможно в Android?
Как узнать название устройства Android? Я использую HTC desire. Когда я подключил его через HTC Sync, программа отображает имя "HTC Smith". Я хотел бы получить это имя с помощью кода.
Как это возможно в Android?
Чтобы получить имя устройства Android, вам нужно добавить только одну строку кода:
android.os.Build.MODEL;
Найдено здесь: получение-android-device-name
Вы можете увидеть ответы здесь Получить модель телефона Android с программным обеспечением
public String getDeviceName() {
   String manufacturer = Build.MANUFACTURER;
   String model = Build.MODEL;
   if (model.startsWith(manufacturer)) {
      return capitalize(model);
   } else {
      return capitalize(manufacturer) + " " + model;
   }
}
private String capitalize(String s) {
    if (s == null || s.length() == 0) {
        return "";
    }
    char first = s.charAt(0);
    if (Character.isUpperCase(first)) {
        return s;
    } else {
        return Character.toUpperCase(first) + s.substring(1);
    }
}
На многих популярных устройствах рыночное название устройства недоступно. Например, на Samsung Galaxy S6 значение Build.MODEL может быть "SM-G920F", "SM-G920I" или "SM-G920W8".
Я создал небольшую библиотеку, которая получила название устройства (потребительское). Он получает правильное имя для более чем 10 000 устройств и постоянно обновляется. Если вы хотите использовать мою библиотеку, нажмите ссылку ниже:
Если вы не хотите использовать библиотеку выше, то это лучшее решение для получения удобного для пользователя имени устройства:
/** Returns the consumer friendly device name */
public static String getDeviceName() {
    String manufacturer = Build.MANUFACTURER;
    String model = Build.MODEL;
    if (model.startsWith(manufacturer)) {
        return capitalize(model);
    }
    return capitalize(manufacturer) + " " + model;
}
private static String capitalize(String str) {
    if (TextUtils.isEmpty(str)) {
        return str;
    }
    char[] arr = str.toCharArray();
    boolean capitalizeNext = true;
    String phrase = "";
    for (char c : arr) {
        if (capitalizeNext && Character.isLetter(c)) {
            phrase += Character.toUpperCase(c);
            capitalizeNext = false;
            continue;
        } else if (Character.isWhitespace(c)) {
            capitalizeNext = true;
        }
        phrase += c;
    }
    return phrase;
}
Пример из моего Verizon HTC One M8:
// using method from above
System.out.println(getDeviceName());
// Using https://github.com/jaredrummler/AndroidDeviceNames
System.out.println(DeviceName.getDeviceName());
Результат:
HTC6525LVW
HTC One (M8)
Попробуйте. Вы можете получить имя устройства через Bluetooth.
Надеюсь, это поможет вам.
public String getPhoneName() {  
        BluetoothAdapter myDevice = BluetoothAdapter.getDefaultAdapter();
        String deviceName = myDevice.getName();     
        return deviceName;
    }
Я решил это, получив имя Bluetooth, но не из BluetoothAdapter (которому требуется разрешение Bluetooth).
Здесь код:
Settings.Secure.getString(getContentResolver(), "bluetooth_name");
Дополнительные разрешения не требуются.
Ты можешь использовать:
Из Android-док:
String MANUFACTURERПроизводитель продукта/оборудования.
String MODELВидимое конечному пользователю имя для конечного продукта.
String DEVICEНазвание промышленного образца.
Как пример:
String deviceName = android.os.Build.MANUFACTURER + " " + android.os.Build.MODEL;
//to add to textview
TextView textView = (TextView) findViewById(R.id.text_view);
textView.setText(deviceName);
Кроме того, в классе Build есть множество атрибутов, которые вы можете использовать, например:
os.android.Build.BOARDos.android.Build.BRANDos.android.Build.BOOTLOADERos.android.Build.DISPLAYos.android.Build.CPU_ABIos.android.Build.PRODUCTos.android.Build.HARDWAREos.android.Build.ID Также есть другие способы получения имени устройства без использования класса Build (через Bluetooth).
@hbhakhra ответ будет.
Если вам интересно подробное объяснение, полезно изучить Документ определения совместимости Android. (3.2.2 Параметры сборки)
Вы найдете:
DEVICE - значение, выбранное разработчиком устройства, содержащее имя разработки или кодовое имя, определяющее конфигурацию аппаратных средств и промышленного дизайна устройства. Значение это поле ДОЛЖНО кодироваться как 7-битный ASCII и соответствовать регулярному выражение "^ [a-zA-Z0-9 _-] + $".
MODEL - значение, выбранное разработчиком устройства, содержащим имя устройства, как известно конечному пользователю. Это СЛЕДУЕТ быть тем же именем при котором устройство продается и продается конечным пользователям. Нет требования к конкретному формату этого поля, за исключением того, что он ДОЛЖЕН NOT be null или пустая строка ( ").
ПРОИЗВОДИТЕЛЬ - Торговое название производителя оригинального оборудования (OEM) продукта. Нет требований к конкретному формату этого поля, за исключением того, что он НЕ ДОЛЖЕН быть пустым или пустой строкой (" ").
ОБНОВЛЕНИЕ Вы можете легко получить устройство из buildprop.
static String GetDeviceName() {
    Process p;
    String propvalue = "";
    try {
        p = new ProcessBuilder("/system/bin/getprop", "ro.semc.product.name").redirectErrorStream(true).start();
        BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
        String line;
        while ((line = br.readLine()) != null) {
            propvalue = line;
        }
        p.destroy();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return propvalue;
}
Но имейте в виду, это не работает на некоторых устройствах.
Вы можете получить имя пользователя с помощью адаптера Bluetooth, как описано здесь: fooobar.com/questions/9285/...
Просто используйте
 BluetoothAdapter.getDefaultAdapter().getName()
Следующие работы для меня.
String deviceName = Settings.Global.getString(.getContentResolver(), Settings.Global.DEVICE_NAME);
Я не думаю, что это дубликат ответа. Приведенный выше документ говорит о настройке безопасности, для меня настройка безопасности дает ноль, если я использую настройку global, это работает. В любом случае спасибо.
Попробуйте этот код. Вы получаете имя устройства Android.
public static String getDeviceName() {
    String manufacturer = Build.MANUFACTURER;
    String model = Build.MODEL;
    if (model.startsWith(manufacturer)) {
        return model;
    }
    return manufacturer + " " + model;
}
 static String getDeviceName() {
        try {
            Class systemPropertiesClass = Class.forName("android.os.SystemProperties");
            Method getMethod = systemPropertiesClass.getMethod("get", String.class);
            Object object = new Object();
            Object obj = getMethod.invoke(object, "ro.product.device");
            return (obj == null ? "" : (String) obj);
        } catch (Exception e) {
            e.printStackTrace();
            return "";
        }
    }
таким образом вы можете получить idol3.
Я написал модуль angular для этой конкретной цели, называемый ng-fone.
Пожалуйста, перейдите по ссылке ниже, чтобы получить более подробную информацию и инструкции по ее использованию в вашем проекте.