我想知道是否有一种方法可以在Android中以编程方式读取Phone Model.
我想买一条像HTC梦、里程碑、蓝Ruby 之类的线...
我想知道是否有一种方法可以在Android中以编程方式读取Phone Model.
我想买一条像HTC梦、里程碑、蓝Ruby 之类的线...
在许多流行的设备上,设备的市场名称不可用.例如,在三星Galaxy S6上,Build.MODEL
的值可以是"SM-G920F"
、"SM-G920I"
或"SM-G920W8"
.
我创建了一个小型库,可以获取设备的市场(消费者友好)名称.它为over 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;
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)