Я хотел бы знать, если есть способ для чтения модели телефона программно в Android.
Я хотел бы получить строку, как HTC Dream, Milestone, Sapphire или что-то еще ...
источник
Я хотел бы знать, если есть способ для чтения модели телефона программно в Android.
Я хотел бы получить строку, как HTC Dream, Milestone, Sapphire или что-то еще ...
На многих популярных устройствах рыночное название устройства недоступно. Например, на Samsung Galaxy S6 значение Build.MODEL
может быть "SM-G920F"
, "SM-G920I"
или "SM-G920W8"
.
Я создал небольшую библиотеку, которая получает рыночное (удобное для потребителя) имя устройства. Он получает правильное имя для более чем 10000 устройств и постоянно обновляется. Если вы хотите использовать мою библиотеку, нажмите на ссылку ниже:
Если вы не хотите использовать библиотеку, указанную выше, то это лучшее решение для получения удобного для пользователя имени устройства:
/** 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;
StringBuilder phrase = new StringBuilder();
for (char c : arr) {
if (capitalizeNext && Character.isLetter(c)) {
phrase.append(Character.toUpperCase(c));
capitalizeNext = false;
continue;
} else if (Character.isWhitespace(c)) {
capitalizeNext = true;
}
phrase.append(c);
}
return phrase.toString();
}
Пример из моего 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)
getDeviceName()
? Если это не даст вам результатов, которые вы ищете, то не существует лучшего решения, о котором я знаю.Я использую следующий код, чтобы получить полное имя устройства. Он получает строки модели и производителя и объединяет их, если строка модели уже не содержит имени производителя (на некоторых телефонах это так):
Вот несколько примеров названий устройств, которые я получил от пользователей:
источник
Да: Build.MODEL .
источник
На самом деле это не на 100% правильно. Это может дать вам модель (иногда цифры).
Вам достанется Производитель телефона (HTC часть вашего запроса):
Для названия продукта:
источник
String name = Build.MANUFACTURER + " - " + Build.MODEL
это самая полезная комбинация. Build.PRODUCT иногда использует неожиданное имя. Например, на Galaxy Nexus он возвращает «такгу». Build.MODEL, с другой стороны, это значение, отображаемое пользователем, которое отображается в меню «Настройки» -> «О телефоне» -> «Номер модели».Для тех, кто ищет полный список свойств,
Build
вот пример для Sony Z1 Compact:Вы можете легко перечислить эти свойства для вашего устройства в режиме отладки, используя диалог «оценить выражение» с помощью kotlin:
источник
источник
Следующие строки все используются, когда вы хотите получить производителя, название устройства и / или модель:
источник
Видимо вам нужно использовать список из Google на https://support.google.com/googleplay/answer/1727131.
API не возвращают ничего, что я ожидаю, или что-либо в настройках. Для моей Motorola X это то, что я получаю
Перейдя на упомянутую выше страницу, «призрачные» карты для Moto X. Кажется, что это может быть немного проще ...
источник
Вы можете использовать следующий код для получения торговой марки и модели устройства.
источник
Вот мой код, чтобы получить производителя, название бренда, версию ОС и уровень поддержки API
Вывод:
источник
Котлин версия
источник
capitalize
stackoverflow.com/a/59158474/1446466 отНемного изменил код Idolons. Это будет использовать слова при получении модели устройства.
источник
Короткая версия Kotlin:
источник
Build.DEVICE Дает удобочитаемое имя для некоторых устройств, чем
Build.MODEL
источник
Вы можете получить имя устройства телефона из
В случае, если телефон не поддерживает Bluetooth, вы должны создать имя устройства из
Вот пример кода для получения имени устройства телефона.
источник
Вы можете попробовать следующую функцию, и она вернет ваше имя phoneModel в строковом формате.
источник