私はsamsung j5を持っています。シリアル番号のような各デバイスのAndroid固有のID
設定>デバイスについて>ステータス>シリアル番号については、シリアル番号を使用しています。
値はRF8H933KWLF
です。これは私が一意であると想定しています。今私はこの値を自分のデータベースに登録します。私は自分のアプリケーションを実行するときに自分のデータベースにリクエストを送信し、私が使っているデバイスが自分のデータベースに登録されているかどうかを確認します。デバイスのシリアル番号を取得する方法は次のとおりです。
String serialNumber = "";
try {
Class <? > c = Class.forName("android.os.SystemProperties");
Method get = c.getMethod("get", String.class, String.class);
serialNumber = (String) get.invoke(c, "sys.serialnumber", "Error");
if (serialNumber.equals("Error")) {
serialNumber = (String) get.invoke(c, "ril.serialnumber", "Error");
}
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
私のデバイスで正しい値を得ることができます。
私の質問は、別のデバイスを使用すると私がSerial Number
に表示されている値を得ることができないということです。
- 私はデバイスを試しましたが、それは
Error
を返します。 - デバイスに固有の代替IDを使用できます(デバイスが復元またはルートされていても変更されません)。
- IDを表示する必要がありますので、私は自分のデータベースに登録してアプリのログインにアクセスできるようにします。
私はこのIDを試しましたが、ドキュメントが示すように、デバイスが復元またはルートされたときに変更されます。私はそれを望んでいません。私はこのIDを取得する方法がないので、シリアル番号とは違って登録することができます。「設定>デバイス>ステータス>シリアル番号」に移動して、その値をデータベースに保存します。 – Giant
質問を参照すると、他の方法でデバイスIDを取得することができます。すべての回答を1回確認してください。少なくとも1つはうまくいくはずです – Redman
私はデバイス内のその値をどこで見ることができますか?私はそれを私のデータベース。 – Giant