如我们所想,手机防盗软件,怎么去判断SIM卡被换了呢?我们又怎么去触发这个事件呢?其实也很简单,那个顺我们手机的人,想要换SIM卡必须关机再开机 吧,好,我们就可以利用这一特点,来触发我们的手机防盗软件,那么我们怎么知道android手机何时开机何时关机呢?其实吧,android手机何时关 机不知道,但是何时开机,我却有点清楚,这样我们的防盗软件的思路就慢慢清晰了。其实android手机在开机的时候,会发送一条广播,告诉手机里面的应 用,我开机啦,这样我们的防盗软件就可以通过BroadcastReceiver来接收这条广播。贴代码,有详尽的注释:
- 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给自己的邮箱,这样达到双层保护。好了这次就到这里了,做为练手,大家可以试试。下次再贴个项目出来,和大家一起学习,有可能是一个游戏,也有可能是一个管理软件!嘿嘿 - - -好好努力,天天向上!
转载于:https://blog.51cto.com/shenlinyuxi/1194092