【问题标题】:How to read serial number on a Samsung device (from within app / on the device)?如何读取三星设备上的序列号(从应用程序内/设备上)?
【发布时间】:2010-09-17 01:42:35
【问题描述】:

如何从内部读取Samsung Android 手机的设备序列号(不是IMEI)(与调用“adb devices”时获得的值相同)应用程序或设备;不使用 PC/USB/adb。

我找到了HTC和其他设备的解决方案,就是——调用

getprop ro.serialno

在终端中

如此处所述,

http://groups.google.com/group/android-developers/browse_thread/thread/3d57b1a214cdf928

但它不适用于三星 Galaxy S。

【问题讨论】:

    标签: android


    【解决方案1】:

    编辑:您可能还想查看我的other answer 关于此主题。

    不确定问题首次发布时是否可行。然而,3 年后,这是可能的:

    public static String getManufacturerSerialNumber() {
      String serial = null; 
      try {
          Class<?> c = Class.forName("android.os.SystemProperties");
          Method get = c.getMethod("get", String.class, String.class);
          serial = (String) get.invoke(c, "ril.serialnumber", "unknown");
      } catch (Exception ignored) {}
      return serial;
    }
    

    【讨论】:

    • 产生无效的 00000000000
    • 不幸的是,没有可靠的方法来获取序列号,因为它是特定于供应商的,即使在同一产品线中的型号之间也会存在差异。请查看我上面链接的其他答案以获取有关此主题的更多上下文。
    【解决方案2】:

    我认为这在三星上是不可能的。

    【讨论】:

      【解决方案3】:

      您可以在 adb shell 上使用 getprop 命令并检查自己哪些文件包含正确的序列号。很多时候序列号位于不同的文件中,并且代码必须是特定于设备的。

      Foe samung Tab 3 你可以使用以下代码:

      试试{

              Class<?> c = Class.forName("android.os.SystemProperties");
      
              Method get = c.getMethod("get", String.class, String.class);
      
              serialnum = (String) (get.invoke(c, "sys.serialnumber", "unknown"));
      
          } catch (Exception ignored) {
      
              serialnum = "unknown";
      
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-10-13
        • 1970-01-01
        • 2023-04-11
        • 2020-09-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多