Android:以编程方式获取设备名称

标签 android

这是我试过的。

mTextView.setText("MODEL: "+android.os.Build.MODEL
                +"\nDEVICE: "+android.os.Build.DEVICE
                +"\nBRAND: "+android.os.Build.BRAND
                +"\nDISPLAY: "+android.os.Build.DISPLAY
                +"\nBOARD: "+android.os.Build.BOARD
                +"\nHOST: "+android.os.Build.HOST
                +"\nMANUFACTURER: "+android.os.Build.MANUFACTURER
                +"\nPRODUCT: "+android.os.Build.PRODUCT);

谁能告诉我如何获得这些输出:
三星 Galaxy S
三星note 3
索尼 Xperia z
索尼Xperai z1
三星大酒店

对于 nexus,它显示 nexus 4nexus 7 与 sony 或 samsung 不同。

最佳答案

你可以使用:

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);
  }
} 

参见 this 对于 Build.MODEL。

更多信息在 Get Android Phone Model Programmatically .

关于Android:以编程方式获取设备名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20839301/

相关文章:

android - 如何在android中创建圆形ProgressBar?

java - Android MediaStore 播放列表返回错误轨道

android - 更改 Spinner 项目的背景颜色

java - 为什么我在谷歌地图 "Failed to load DynamiteLoader: java.lang.ClassNotFoundException: Didn' 上找不到类时出现此错误?

android - Android 中的 Flurry Analytics 教程?

android - 如何像 Theme.AppCompat.Light.DarkActionBar 一样设置 appcompat-v7 工具栏的样式?

android - 如何从应用程序访问phonegap native android插件中的 Assets 文件

android - 应用崩溃并出现错误 INVALID_STATE_ERR

android - android RelativeLayout的动画更改宽度

android - 如何创建类似 edittext 布局的 Gmail