【问题标题】:Android: Get the device name programmaticallyAndroid:以编程方式获取设备名称
【发布时间】:2014-01-17 07:47:23
【问题描述】:

这是我尝试过的。

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 的情况不同。

【问题讨论】:

  • 根据您对答案的 cmets,您的问题似乎不清楚 - 请改写它。 case - 你的意思是小写/大写?你想要什么?
  • 我对小写或大写没有问题。我想要的是获得设备名称的第二部分,例如“galaxy S,note 3,Xperia z 或 Xperia Z1”,我有名字即“三星或索尼”使用 android.os.Build.MODEL。感谢您的回复。

标签: android


【解决方案1】:

你可以使用:

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 for Build.MODEL。

Get Android Phone Model Programmatically 中的更多信息。

【讨论】:

  • 对不起,如果你能看到我的代码,我已经试过了。 android.os.Build.MODEL 和 android.os.Build.MANUFACTURER 没有给出我想要的东西,但是感谢尝试。
【解决方案2】:

为了获得安卓设备名称,您只需添加一行代码:

android.os.Build.MODEL;

在这里找到:getting-android-device-name

【讨论】:

  • 对不起,如果你能看到我上面的代码,我试过了。它不会为您提供完整的设备名称。无论如何,谢谢。
【解决方案3】:

您也可以通过 bluetoothAdapter 获取它,请参阅this

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

【讨论】:

  • 请注意,并非所有安卓设备都支持蓝牙,在这些情况下会抛出空引用异常。否则,这似乎工作得很好。
  • @Xar-e-ahmer Khan 感谢代码 sn-p,此代码几乎适用于所有设备。关于如何在蓝牙关闭时获取设备名称的任何想法。因为上面的代码 sn-p 有限制,比如当蓝牙关闭时用户更改设备名称,我们得到旧设备名称,直到蓝牙再次打开。
【解决方案4】:

从这里下载 csv:

https://support.google.com/googleplay/answer/1727131?hl=en

查看以下列表,了解您的设备是否支持 Google Play。 下载 PDF 文件时,设备按字母顺序排列 (A-Z) 按制造商名称。

然后将此文件导入您的数据库。

通过Model = Build.Model查询RetailBrandingMarketing Name

为了获得更好的性能,请将这些数据放入您的数据库服务器中。

在应用首次启动时获取RetailBrandingMarketing Name并将其保存到本地数据库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-01
    • 1970-01-01
    • 2012-07-27
    • 2012-06-25
    • 2011-02-15
    • 2018-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多