淺析Android手機衛士sim卡繫結

NO IMAGE
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

讀取sim卡的序列號,儲存起來,一旦sim發生變更了,認為是小偷的sim卡,發出警告

讀取sim卡序列號

獲取TelephonyManager物件,通過getSystemService(TELEPHONY_SERVICE)

呼叫TelephonyManager物件的getSimSerialNumber()方法,得到String型別的序列號

把序列號儲存在SharedPreences裡面

需要加許可權 android.permission.READ_PHONE_STATE

檢測sim卡是否變更

使用廣播接收者,監聽手機的開機廣播

新建一個包 xxx.receiver,新建一個類BootCompleteReceiver.java

清單檔案註冊一下,新增<receiver>節點,設定名稱android:name=”xxx”

新增意圖過濾器<intent-filter>節點

新增動作<action/>節點,設定監聽動作名稱android.intent.action.BOOT_COMPLETED

在BootCompleteReceiver類裡面的onReceive()方法裡,接收到廣播,讀取當前的sim卡序列號,比較之前儲存的sim卡序列號,如果不一樣就傳送簡訊給安全號碼

監聽開機啟動需要許可權 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;
@Override
public void onReceive(Context cotext, Intent arg1) {
sp=cotext.getSharedPreferences("config", Context.MODE_PRIVATE);
//讀取當前的sim卡序列號
tm=(TelephonyManager) cotext.getSystemService(Context.TELEPHONY_SERVICE);
String relSim=tm.getSimSerialNumber();
//讀取之前儲存的
String saveSim=sp.getString("sim", "");
//判斷後發簡訊
if(saveSim.equals(relSim)){
}else{
//傳送報警短息給安全號碼
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;
@Override
protected 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);
// 根據儲存的資料設定狀態
String sim = sp.getString("sim", "");
if (TextUtils.isEmpty(sim)) {
siv_sim.setChecked(false);
} else {
siv_sim.setChecked(true);
}
// 繫結sim卡
siv_sim.setOnClickListener(new OnClickListener() {
@Override
public 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();
}
@Override
public void showNext() {
Intent intent = new Intent(this, SecGuide3Activity.class);
startActivity(intent);
finish();
}
@Override
public void showPre() {
Intent intent = new Intent(this, SecGuide1Activity.class);
startActivity(intent);
finish();
}
}

您可能感興趣的文章:

Android讀取使用者號碼,手機串號,SIM卡序列號的實現程式碼Android獲取手機通訊錄、sim卡聯絡人及呼叫撥號介面方法android監控sim卡有沒有服務示例(sim卡管理)Android獲取手機SIM卡運營商資訊的方法Android 判斷SIM卡屬於哪個移動運營商的實現程式碼Android4.X中SIM卡資訊初始化過程詳解Android 判斷SIM卡是中國移動\中國聯通\中國電信(移動運營商)Android4.X讀取SIM卡簡訊和聯絡人相關類例項分析Android 判斷SIM卡屬於哪個移動運營商詳解及例項Android獲取雙卡雙待手機的SIM卡資訊示例程式碼

相關文章

Android 開發 最新文章