0

SIM カードのシリアルをシリアルという文字列内の packagename.preferences.xml に保存できましたが、現在のシリアルを比較したいと思います。

android.intent.boot_completed ブロードキャスト レシーバーを使用して電話を起動すると。String 内の値 value = sp.getString("serial", ""); シリアル文字列の現在の値を取得して正しく比較することができません。

         TelephonyManager tMgr=(TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
         String currentSerial = tMgr.getSimSerialNumber();

         Toast.makeText(context, "Current Serial Number: " + currentSerial, Toast.LENGTH_LONG).show();

 SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
 String value = sp.getString("serial", "");

 if (value == currentSerial)
 {
     Toast.makeText(context, "SIM Change detected!", Toast.LENGTH_SHORT).show();
 }
 else {
     Toast.makeText(context, "No SIM Change detected!", Toast.LENGTH_SHORT).show();
 }
4

1 に答える 1

0

おそらく、同じ SharedPreferences を取得していません。両方に SharedPrefereneces 名を指定するか、それぞれに基本コンテキストを使用してみてください。

于 2012-07-31T14:20:07.217 に答える