2012-07-31 85 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