Serial number from Samsung Device running Android

五迷三道 提交于 2019-11-27 22:11:12
dev
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;
}

Edit: it's been a while since this answer, here's a couple of updated points:

  • The OP asked about Galaxy Tab 2 and for that indeed the answer was ril.serialnumber (even for the non-3G model - see this gist). According to Himanshu's answer Galaxy Tab 3 uses sys.serialnumber (also backed by this answer). sys.serialnumber makes better sense for tablets as ril.* stands for Radio Interface Layer, something most tablets are not equipped with (ril.serialnumber, respectively, makes better sense for phones).
  • There is no standard API for getting the device serial number (ie the serial number on the packaging - not to be confused with Settings.Secure.ANDROID_ID or the various other "unique" identifiers scattered throughout the API). This means it is up to the manufacturer to decide where to store the device serial (if at all). On the S3 Mini it's ril.serialnumber, on NexusOne it's ro.serialno (gist), on Galaxy Tab 2 it's ril.serialnumber, on Galaxy Tab 3/4 it's sys.serialnumber, on Lenovo Tab it's none of the above. These settings appear to be the usual suspects, when looking for the device serial, but shouldn't be taken for granted, and as such, shouldn't be relied on for tracking unique app installations.
Himanshu Khandelwal

You can use the getprop command on the adb shell and check yourself that which of the files contains the correct serial number. Many times the serial number is located in different files and a code has to be device specific.

For samung Tab 3 you can use the following code:

try {

        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";

    }

We use the Build class for our product. See if this matches: http://developer.android.com/reference/android/os/Build.html#SERIAL

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!