【问题标题】:How to get the device Model Name? [duplicate]如何获取设备型号名称? [复制]
【发布时间】:2016-11-04 13:30:15
【问题描述】:

如何获取设备型号名称?我有一个 Yuphoria 5010,它在设备型号中显示 YU5010,我想获取设备的全名?我想要获取下面给出的确切字符串:

Yuphoria 5010 6.0 棉花糖

【问题讨论】:

    标签: android


    【解决方案1】:

    其实很简单,只需调用:

    String model = Build.MODEL;
    

    更新:此代码将打印您请求的确切字符串:

    String reqString = Build.MANUFACTURER
                    + " " + Build.MODEL + " " + Build.VERSION.RELEASE
                    + " " + Build.VERSION_CODES.class.getFields()[android.os.Build.VERSION.SDK_INT].getName();
    

    打印:

    三星 Note 4 6.0 棉花糖

    LGE LG-D410 4.4.2 奇巧

    【讨论】:

      【解决方案2】:

      在许多流行的设备上,该设备的市场名称不可用。例如,在三星 Galaxy S6 上,Build.MODEL 的值可能是“SM-G920F”、“SM-G920I”或“SM-G920W8”。 因此,要获取完整的设备名称,您可以使用 github 上提供的库。 AndroidDeviceLibrary 的链接在这里https://github.com/shubhamsharmacs/AndroidDeviceNames

      现在如何使用这些库:- 把这些放在你的 build.gradle 文件中

      compile 'com.jaredrummler:android-device-names:1.0.9'
      

      现在这些操作是:

      获取当前设备的名称:

      String deviceName = DeviceName.getDeviceName();
      

      以上代码将获得前 600 名 Android 设备的正确设备名称。如果设备无法识别,则返回 Build.MODEL。这可以从 UI 线程执行。

      使用设备的代号获取设备的名称:

      // Retruns "Moto X Style"
      DeviceName.getDeviceName("clark", "Unknown device");
      

      获取有关设备的信息:

      DeviceName.with(context).request(new DeviceName.Callback() {
      
        @Override public void onFinished(DeviceName.DeviceInfo info, Exception error) {
          String manufacturer = info.manufacturer;  // "Samsung"
          String name = info.marketName;            // "Galaxy S7 Edge"
          String model = info.model;                // "SAMSUNG-SM-G935A"
          String codename = info.codename;          // "hero2lte"
          String deviceName = info.getName();       // "Galaxy S7 Edge"
          // FYI: We are on the UI thread.
        }
      });
      

      以上代码根据 Google 维护的列表从生成的设备名称列表中加载 JSON。它将与 Google 支持的设备列表保持同步,以便您获得新设备或未知设备的正确名称。这支持超过 10,000 台设备。

      这只会进行一次网络调用。该值将保存到 SharedPreferences 以供将来调用。

      【讨论】:

      • 这也是正确答案@jim
      • 这是一个很好的解决方案,但该库自 2016 年以来一直没有更新。因此没有新设备。它需要每年至少更新一次才能具有真正的价值。
      • 别被骗了——这个库已经更新了。这里的链接是真正库的一个分支。真实库(github.com/jaredrummler/AndroidDeviceNames)6月更新!
      【解决方案3】:

      您可以使用以下代码获取设备详细信息。

      String s="Debug-infos:\n";
      s += "OS Version: " + System.getProperty("os.version") + "(" + android.os.Build.VERSION.INCREMENTAL + ")\n";
      s += "OS API Level: " + android.os.Build.VERSION.RELEASE + "(" + android.os.Build.VERSION.SDK_INT + ")\n";
      s += "Device: " + android.os.Build.DEVICE + "\n";
      s += "Model (and Product): " + android.os.Build.MODEL + " ("+ android.os.Build.PRODUCT + ")\n";
      

      【讨论】:

        【解决方案4】:

        使用此代码获取设备型号

        import android.os.Build;
        
        String deviceModel = Build.MODEL;
        

        如果您想在 android 6.0 Marshmellow 中获取此信息,请在获取信息之前授予运行时权限

        Manifest.permission.READ_PHONE_STATE
        

        【讨论】:

          猜你喜欢
          • 2022-12-21
          • 2016-08-25
          • 1970-01-01
          • 2011-05-17
          • 1970-01-01
          • 2015-05-16
          • 1970-01-01
          • 2010-11-09
          • 1970-01-01
          相关资源
          最近更新 更多