私はSamsungGalaxy Tab 2.0(7 ")を持っています
このデバイスの背面には、フォーマットのシリアル番号があります
RF3C6000MNA
デバイスの設定に移動し、[デバイスについて]-> [ステータス]-> [シリアル番号]を選択すると、この番号も表示されます。
ただし、この数値をプログラムで抽出する方法を見つけることはできません。
シリアル番号の抽出に関する記事をたくさん見てきましたが、これではまったく異なる番号が返されます。 (Android.os.Build.SERIALを使用)
IMEIとMACアドレスはすでに抽出しているので、このためのコードは必要ありません。
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;
}
編集:この回答からしばらく経ちましたが、ここにいくつかの更新されたポイントがあります:
ril.serialnumber
でした(3G以外のモデルでも-これを参照してください- 要点 )。ひまんしゅの答えによるとGalaxy Tab 3はsys.serialnumber
を使用しています(これも この答え に裏打ちされています)。 sys.serialnumber
はRadio Interface Layerを表し、ほとんどのタブレットには(ril.*
、それぞれ)が装備されていないため、ril.serialnumber
はタブレットに適しています。電話の方が理にかなっています)。Settings.Secure.Android_ID
と混同しないでください)を取得するための標準APIはありません。 API全体に散在する他のさまざまな「一意の」識別子)。これは、デバイスのシリアルをどこに保存するかを決定するのはメーカーの責任であることを意味します(あるとしても)。 S3 Miniではril.serialnumber
、NexusOneではro.serialno
( Gist )、onGalaxy Tab 2it's ril.serialnumber
、onGalaxy Tab 3/4それはsys.serialnumber
、Lenovo Tabそれは- 上記のいずれでもない 。これらの設定は、デバイスのシリアルを探すときに通常の疑いがあるように見えますが、当然のことと見なされるべきではなく、したがって、固有のアプリのインストールを追跡するために信頼されるべきではありません。Adbシェルでgetprop
コマンドを使用して、どのファイルに正しいシリアル番号が含まれているかを確認できます。多くの場合、シリアル番号はさまざまなファイルにあり、コードはデバイス固有である必要があります。
サムスンタブ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";
}
製品にはBuildクラスを使用しています。これが一致するかどうかを確認します: http://developer.Android.com/reference/Android/os/Build.html#SERIAL