在我的项目中有一个SIM Swap的要求。如果我自动更改我的SIM应用程序将显示,如何在SharedPreferences中存储SIM卡号码以及如何将旧SIM卡与新SIM卡进行比较
答案 0 :(得分:1)
无法保证您可以从this question中的答案中获取SIM卡中的号码。
这使得人们很难发现一个人是否换过SIM卡。
答案 1 :(得分:0)
String simSerialNumber; String oldSimSerialNumber;
SharedPreferences sharedPreferences = getSharedPreferences("preference", MODE_PRIVATE);
TelephonyManager tMgr = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
simSerialNumber = tMgr.getSimSerialNumber()!=null?tMgr.getSimSerialNumber():"";
oldSimSerialNumber = sharedPreferences.getString("simSerialNumber", "");
logger.d("old sim"+oldSimSerialNumber);
logger.d("present sim"+simSerialNumber);
if(oldSimSerialNumber.equals("")){
Editor prefEdit=sharedPreferences.edit();
prefEdit.putString("simSerialNumber", simSerialNumber);
prefEdit.commit();
}
else if(simSerialNumber.equals(""))
{
//do nothing // sim is not there in phone
logger.d("no sim in device"+simSerialNumber);
showNoSimInDevice();
}
else if(simSerialNumber.equals(oldSimSerialNumber)){
//both sims are equal
Editor prefEdit=sharedPreferences.edit();
prefEdit.putBoolean("temp_sim_changed", false);
prefEdit.commit();
}
else{
logger.d("two sims are different"+simSerialNumber+":"+oldSimSerialNumber);
showAlertForSimChanged();
}