讀取sim卡的序列號,保存起來,一旦sim發(fā)生變更了,認(rèn)為是小偷的sim卡,發(fā)出警告
讀取sim卡序列號
獲取TelephonyManager對象,通過getSystemService(TELEPHONY_SERVICE)
調(diào)用TelephonyManager對象的getSimSerialNumber()方法,得到String類型的序列號
把序列號保存在SharedPreences里面
需要加權(quán)限 android.permission.READ_PHONE_STATE
檢測sim卡是否變更
使用廣播接收者,監(jiān)聽手機(jī)的開機(jī)廣播
新建一個(gè)包 xxx.receiver,新建一個(gè)類BootCompleteReceiver.java
清單文件注冊一下,添加<receiver>節(jié)點(diǎn),設(shè)置名稱android:name=”xxx”
添加意圖過濾器<intent-filter>節(jié)點(diǎn)
添加動作<action/>節(jié)點(diǎn),設(shè)置監(jiān)聽動作名稱android.intent.action.BOOT_COMPLETED
在BootCompleteReceiver類里面的onReceive()方法里,接收到廣播,讀取當(dāng)前的sim卡序列號,比較之前保存的sim卡序列號,如果不一樣就發(fā)送短信給安全號碼
監(jiān)聽開機(jī)啟動需要權(quán)限 android:perission.RECEIVE_BOOT_COMPLETED
BootCompleteReceiver.java
package com.qingguow.mobilesafe.receiver;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.SharedPreferences;import android.telephony.TelephonyManager;import android.widget.Toast;public class BootCompleteReceiver extends BroadcastReceiver {private TelephonyManager tm;private SharedPreferences sp;@Overridepublic void onReceive(Context cotext, Intent arg1) {sp=cotext.getSharedPreferences("config", Context.MODE_PRIVATE);//讀取當(dāng)前的sim卡序列號tm=(TelephonyManager) cotext.getSystemService(Context.TELEPHONY_SERVICE);String relSim=tm.getSimSerialNumber();//讀取之前保存的String saveSim=sp.getString("sim", "");//判斷后發(fā)短信if(saveSim.equals(relSim)){}else{//發(fā)送報(bào)警短息給安全號碼System.out.println("sim卡變更了");Toast.makeText(cotext, "sim卡變更了", 1).show();}}} SecGuide2Activity.java
package com.qingguow.mobilesafe;import android.content.Intent;import android.content.SharedPreferences;import android.content.SharedPreferences.Editor;import android.os.Bundle;import android.telephony.TelephonyManager;import android.text.TextUtils;import android.view.View;import android.view.View.OnClickListener;import com.qingguow.mobilesafe.ui.SettingItemView;public class SecGuide2Activity extends BaseSecGuideActivity {private SettingItemView siv_sim;private SharedPreferences sp;private TelephonyManager telephonyManager;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_lost_find2);siv_sim = (SettingItemView) findViewById(R.id.siv_sim);sp = getSharedPreferences("config", MODE_PRIVATE);telephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);// 根據(jù)保存的數(shù)據(jù)設(shè)置狀態(tài)String sim = sp.getString("sim", "");if (TextUtils.isEmpty(sim)) {siv_sim.setChecked(false);} else {siv_sim.setChecked(true);}// 綁定sim卡siv_sim.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {String sim = telephonyManager.getSimSerialNumber();Editor editor = sp.edit();String simSp = sp.getString("sim", "");if (TextUtils.isEmpty(simSp)) {siv_sim.setChecked(true);editor.putString("sim", sim);} else {siv_sim.setChecked(false);editor.putString("sim", "");}editor.commit();}});}public void nextStep(View v) {showNext();}public void preStep(View v) {showPre();}@Overridepublic void showNext() {Intent intent = new Intent(this, SecGuide3Activity.class);startActivity(intent);finish();}@Overridepublic void showPre() {Intent intent = new Intent(this, SecGuide1Activity.class);startActivity(intent);finish();}}新聞熱點(diǎn)
疑難解答
圖片精選