为了账号安全,请及时绑定邮箱和手机立即绑定

以编程方式获取Android手机模型

/ 猿问

以编程方式获取Android手机模型

德玛西亚99 2019-07-22 14:50:11

以编程方式获取Android手机模型

我想知道是否有一种在Android中以编程方式阅读手机模型的方法。

我想要一根像HTC梦想,里程碑,蓝宝石之类的线.


查看完整描述

3 回答

?
蝴蝶刀刀

在许多流行的设备上,该设备的市场名称是不可用的。例如,在三星Galaxy S6上,Build.MODEL可能是"SM-G920F""SM-G920I",或"SM-G920W8".

我创建了一个小型库来获取设备的市场名称(消费者友好)。它得到正确的名称一万多设备和不断更新。如果您希望使用我的库,请单击下面的链接:

Gizub上的AndroidDeviceNames图书馆


如果不想使用上面的库,那么这是获得对消费者友好的设备名称的最佳解决方案:

/** 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 aboveSystem.out.println(getDeviceName());
// Using https://github.com/jaredrummler/AndroidDeviceNamesSystem.out.println(DeviceName.getDeviceName());

结果:

HTC6525LVW

HTC One(M8)


查看完整回答
反对 回复 2019-07-22
?
慕盖茨1488219

我使用以下代码获取完整的设备名称。它获取模型和制造商字符串,并将它们连接起来,除非模型字符串已经包含制造商名称(在某些手机上):

public String getDeviceName() {
    String manufacturer = Build.MANUFACTURER;
    String model = Build.MODEL;
    if (model.toLowerCase().startsWith(manufacturer.toLowerCase())) {
        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);
    }}

 

下面是我从用户那里获得的一些设备名称的示例:

三星GT-S5830L
摩托罗拉MB 860
索尼爱立信LT18i
LGE LG-P 500
HTC愿望V
宏达电野火S A510E


查看完整回答
反对 回复 2019-07-22
?
幕布斯5086720

是:建筑.MODEL.


查看完整回答
反对 回复 2019-07-22

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信