android學習之手機防盜Three

如咱們所想,手機防盜軟件,怎麼去判斷SIM卡被換了呢?咱們又怎麼去觸發這個事件呢?其實也很簡單,那個順咱們手機的人,想要換SIM卡必須關機再開機 吧,好,咱們就能夠利用這一特色,來觸發咱們的手機防盜軟件,那麼咱們怎麼知道android手機什麼時候開機什麼時候關機呢?其實吧,android手機什麼時候關 機不知道,可是什麼時候開機,我卻有點清楚,這樣咱們的防盜軟件的思路就慢慢清晰了。其實android手機在開機的時候,會發送一條廣播,告訴手機裏面的應 用,我開機啦,這樣咱們的防盜軟件就能夠經過BroadcastReceiver來接收這條廣播。貼代碼,有詳盡的註釋:java

 

  
  
           
  
  
  1. package com.yuxi.lostprevent; 
  2.  
  3. import java.util.List; 
  4.  
  5. import android.content.BroadcastReceiver; 
  6. import android.content.Context; 
  7. import android.content.Intent; 
  8. import android.content.SharedPreferences; 
  9. import android.telephony.TelephonyManager; 
  10. import android.telephony.gsm.SmsManager; 
  11.  
  12. public class BootCompleteReceiver extends BroadcastReceiver{ 
  13.  
  14.     TelephonyManager tm; 
  15.     @Override 
  16.     public void onReceive(Context context, Intent intent) { 
  17.         // TODO Auto-generated method stub 
  18.          
  19.          
  20.         SharedPreferences m_SharedPreferences = context.getSharedPreferences("data", context.MODE_WORLD_WRITEABLE);     //獲得SharedPreferences存儲文件對象 
  21.          
  22.         tm = (TelephonyManager) context.getSystemService(context.TELEPHONY_SERVICE);    //獲得TelephonyManager對象,用以獲得SIM卡的IMSI碼 
  23.          
  24.         boolean issafe = m_SharedPreferences.getBoolean("safestate"false);    //從 m_SharedPreferences獲得issafe,用以判斷是否開啓了防盜軟件 
  25.          
  26.         /*判斷有沒有開啓防盜,若是沒有,則返回空*/ 
  27.         if (!issafe) {   
  28.             return
  29.         } 
  30.         else { 
  31.             /*m_SharedPreferences文件對象中,取得相應的值*/ 
  32.             String saveSubScribeerId = m_SharedPreferences.getString("subscriberrid"""); 
  33.             String safeNumber = m_SharedPreferences.getString("safenumber"""); 
  34.              
  35.             String subScribeerId = tm.getSubscriberId();    //獲得當前SIM卡的SMSI碼 
  36.              
  37.             /*SMSI碼匹配,則返回空*/ 
  38.             if (subScribeerId.trim().equals(saveSubScribeerId)) {    
  39.                 return
  40.             } 
  41.             else { 
  42.                  
  43.                 SmsManager manager = SmsManager.getDefault();   //獲得SMsManager對象,用以給安全號碼發送消息 
  44.                  
  45.                 /*若是信息大量的,則用List存儲*/ 
  46.                 List<String> message = manager.divideMessage("手機IMSI碼爲:"+saveSubScribeerId+"的手機,SIM已被更換,更換的SMSI碼爲:"+subScribeerId); 
  47.                  
  48.                 for (String msg : message) { 
  49.                     manager.sendTextMessage(safeNumber, null, msg, nullnull);     //向安全號碼發送短信 
  50.                 } 
  51.             } 
  52.         } 
  53.     } 
  54.  

 

好了,這個小模塊開發就到此了,其實還能夠添加不少方面的,如發送短信的時候併發送手機所在的位置,或者咱們還能夠添加一層防禦,就是發送短信的同時,發送一封E-mail給本身的郵箱,這樣達到雙層保護。好了此次就到這裏了,作爲練手,你們能夠試試。下次再貼個項目出來,和你們一塊兒學習,有多是一個遊戲,也有多是一個管理軟件!嘿嘿 - - -好好努力,每天向上!android

相關文章
相關標籤/搜索