获取Android设备名称

如何获得Android设备名称? 我正在使用HTC的愿望。 当我通过HTC Sync连接时,软件显示名称“HTC Smith” 。 我想通过代码获取这个名字。

这在android中怎么可能?

谢谢

为了获得Android设备名称,你只需要添加一行代码:

 android.os.Build.MODEL; 

在这里find: getting-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); } } 

尝试一下。 您可以通过蓝牙获取设备名称。

希望它会帮助你

 public String getPhoneName() { BluetoothAdapter myDevice = BluetoothAdapter.getDefaultAdapter(); String deviceName = myDevice.getName(); return deviceName; } 

在许多stream行的设备上,设备的市场名称不可用。 例如,在Samsung Galaxy S6上, Build.MODEL的值可以是"SM-G920F""SM-G920I""SM-G920W8"

我创build了一个小型图书馆,以获得设备的市场(消费者友好)名称。 它获得超过10,000个设备的正确名称,并不断更新。 如果你想使用我的图书馆,请点击下面的链接:

Github上的AndroidDeviceNames库


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

 /** 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)

您可以使用:

从android文档:

MANUFACTURER

 String MANUFACTURER 

产品/硬件的制造商。

MODEL

 String MODEL 

最终用户可见的最终产品名称。

DEVICE

 String DEVICE 

工业devise的名称。

举个例子:

 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.BOARD
  • os.android.Build.BRAND
  • os.android.Build.BOOTLOADER
  • os.android.Build.DISPLAY
  • os.android.Build.CPU_ABI
  • os.android.Build.PRODUCT
  • os.android.Build.HARDWARE
  • os.android.Build.ID

他们也是其他方式,你可以不使用Build类(通过蓝牙)获得设备名称。

我通过获取蓝牙名称解决了这个问题,但是不能从BluetoothAdapter (需要蓝牙许可)解决。

代码如下:

 Settings.Secure.getString(getContentResolver(), "bluetooth_name"); 

没有额外的权限需要。

@ hbhakhra的答案会做。

如果您对详细解释感兴趣,查看Android兼容性定义文档非常有用。 (3.2.2构build参数)

你会find:

DEVICE(设备) – 设备实施者select的值,其中包含开发名称或代码名称,用于标识设备的硬件function和工业devise的configuration。 该字段的值必须是可编码的7位ASCII码,并匹配正则expression式“^ [a-zA-Z0-9 _-] + $”。

MODEL – 设备实施者select的一个值,包含最终用户所知的设备名称。 这应该是该设备销售和销售给terminal用户的名称。 除了不能为null或空string(“”)之外,对该字段的特定格式没有要求。

制造商 – 产品的原始设备制造商(OEM)的商标名称。 除了不能为null或空string(“”)之外,对该字段的特定格式没有要求。

简单的使用

BluetoothAdapter.getDefaultAdapter().getName()

通过蓝牙是最好的方法

 BluetoothAdapter myDevice = BluetoothAdapter.getDefaultAdapter(); String deviceName = myDevice.getName(); 

不要忘记将蓝牙许可添加到清单文件

Interesting Posts