如咱們所想,手機防盜軟件,怎麼去判斷SIM卡被換了呢?咱們又怎麼去觸發這個事件呢?其實也很簡單,那個順咱們手機的人,想要換SIM卡必須關機再開機 吧,好,咱們就能夠利用這一特色,來觸發咱們的手機防盜軟件,那麼咱們怎麼知道android手機什麼時候開機什麼時候關機呢?其實吧,android手機什麼時候關 機不知道,可是什麼時候開機,我卻有點清楚,這樣咱們的防盜軟件的思路就慢慢清晰了。其實android手機在開機的時候,會發送一條廣播,告訴手機裏面的應 用,我開機啦,這樣咱們的防盜軟件就能夠經過BroadcastReceiver來接收這條廣播。貼代碼,有詳盡的註釋:java
- package com.yuxi.lostprevent;
- import java.util.List;
- import android.content.BroadcastReceiver;
- import android.content.Context;
- import android.content.Intent;
- import android.content.SharedPreferences;
- import android.telephony.TelephonyManager;
- import android.telephony.gsm.SmsManager;
- public class BootCompleteReceiver extends BroadcastReceiver{
- TelephonyManager tm;
- @Override
- public void onReceive(Context context, Intent intent) {
- // TODO Auto-generated method stub
- SharedPreferences m_SharedPreferences = context.getSharedPreferences("data", context.MODE_WORLD_WRITEABLE); //獲得SharedPreferences存儲文件對象
- tm = (TelephonyManager) context.getSystemService(context.TELEPHONY_SERVICE); //獲得TelephonyManager對象,用以獲得SIM卡的IMSI碼
- boolean issafe = m_SharedPreferences.getBoolean("safestate", false); //從 m_SharedPreferences獲得issafe,用以判斷是否開啓了防盜軟件
- /*判斷有沒有開啓防盜,若是沒有,則返回空*/
- if (!issafe) {
- return;
- }
- else {
- /*m_SharedPreferences文件對象中,取得相應的值*/
- String saveSubScribeerId = m_SharedPreferences.getString("subscriberrid", "");
- String safeNumber = m_SharedPreferences.getString("safenumber", "");
- String subScribeerId = tm.getSubscriberId(); //獲得當前SIM卡的SMSI碼
- /*SMSI碼匹配,則返回空*/
- if (subScribeerId.trim().equals(saveSubScribeerId)) {
- return;
- }
- else {
- SmsManager manager = SmsManager.getDefault(); //獲得SMsManager對象,用以給安全號碼發送消息
- /*若是信息大量的,則用List存儲*/
- List<String> message = manager.divideMessage("手機IMSI碼爲:"+saveSubScribeerId+"的手機,SIM已被更換,更換的SMSI碼爲:"+subScribeerId);
- for (String msg : message) {
- manager.sendTextMessage(safeNumber, null, msg, null, null); //向安全號碼發送短信
- }
- }
- }
- }
- }
好了,這個小模塊開發就到此了,其實還能夠添加不少方面的,如發送短信的時候併發送手機所在的位置,或者咱們還能夠添加一層防禦,就是發送短信的同時,發送一封E-mail給本身的郵箱,這樣達到雙層保護。好了此次就到這裏了,作爲練手,你們能夠試試。下次再貼個項目出來,和你們一塊兒學習,有多是一個遊戲,也有多是一個管理軟件!嘿嘿 - - -好好努力,每天向上!android