19

私はSamsungGalaxyTab 2.0(7 ")を持っています

このデバイスの背面には、フォーマットのシリアル番号があります

RF3C6000MNA

デバイスの設定に移動し、[デバイスについて]->[ステータス]->[シリアル番号]を選択すると、この番号も表示されます。

ただし、プログラムでこの数値を抽出する方法を見つけることはできません。

シリアル番号の抽出に関する記事をたくさん見てきましたが、これではまったく異なる番号が返されます。(android.os.Build.SERIALを使用)

IMEIとMACアドレスはすでに抽出しているので、このためのコードは必要ありません。

4

3 に答える 3

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

編集:この回答からしばらく経ちましたが、ここにいくつかの更新されたポイントがあります:

  • OPはGalaxyTab2について質問ましたが、その答えは確かにril.serialnumber(3G以外のモデルでも-この要点を参照してください)でした。ひまんしゅの回答によると、Galaxy Tab 3が使用しています(これもこの回答sys.serialnumberに裏付けられています)。ほとんどのタブレットには装備されていないRadioInterfaceLayerの略であるため、タブレットの方が理にかなっています(それぞれ、電話の方が理にかなっています)。sys.serialnumberril.*ril.serialnumber
  • デバイスのシリアル番号を取得するための標準APIはありません(つまり、パッケージのシリアル番号-API全体に散在する他のさまざまな「一意の」識別子と混同しないでください)。Settings.Secure.ANDROID_IDこれは、デバイスのシリアルをどこに保存するかを決定するのはメーカーの責任であることを意味します(あるとしても)。S3 Miniでは、NexusOneril.serialnumberでは(要点)、Galaxy Tab 2では、Galaxy Tab 3/4では、Lenovo Tabでは、上記のいずれでもありません。ro.serialnoril.serialnumbersys.serialnumber。これらの設定は、デバイスのシリアルを探すときに通常の疑いがあるように見えますが、当然のことと見なされるべきではなく、したがって、固有のアプリのインストールを追跡するために信頼されるべきではありません。
于 2013-08-06T04:43:39.653 に答える
2

adbシェルでコマンドを使用してgetprop、どのファイルに正しいシリアル番号が含まれているかを確認できます。多くの場合、シリアル番号はさまざまなファイルにあり、コードはデバイス固有である必要があります。

samung Tab 3の場合、次のコードを使用できます。

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

    }
于 2014-03-06T15:04:10.547 に答える
0

製品にはBuildクラスを使用しています。これが一致するかどうかを確認します:http://developer.android.com/reference/android/os/Build.html#SERIAL

于 2013-01-04T19:57:23.493 に答える