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

相关文章
相关标签/搜索