获取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();
不要忘记将蓝牙许可添加到清单文件