2012-07-31 120 views
0

我已經設法將我的SIM卡序列保存到名爲serial的字符串中的packagename.preferences.xml中,但現在我想比較當前的序列號。使用sharedpreferences檢測SIM卡更改

當我啓動我的手機使用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(); 
} 

回答

0

您可能沒有得到相同的SharedPreferences。嘗試爲兩者指定SharedPrefereneces名稱和/或爲每個名稱使用基本上下文。

+0

但不會得到DefaultSharedPreference只需轉到您的默認首選項packagename.preferences.xml? – dythe 2012-07-31 14:24:44

+0

可能是的,那就是我說的和/或。排除法。 – Jug6ernaut 2012-07-31 14:25:43