2.11 更换SIM卡触发防盗系统(广播接收者触发)

本文介绍了一种基于Android系统的手机防盗方案,通过监听手机重启及短信接收事件实现SIM卡更换检测和远程指令响应功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.创建广播手机重启的广播,当手机重新启动时比较当前SIM卡的序列号和sp存储器中存储的SIM卡序列号是否一致
2.创建短信接收的广播,当手机接收到短信时判断短信内容时候是指令

3.权限配置: < uses-permission android:name= "android.permission.RECEIVE_BOOT_COMPLETED" />
     <uses-permission android:name ="android.permission.RECEIVE_SMS"/>
 
 
 
 
 
 
 

----------------------------------------------------------------------------------------------


/**
 * 手机重启时出发的广播事件
 * @author Administrator
 *
 */
public class BootCompleteReceiver extends BroadcastReceiver {

      
      SharedPreferences  sp;
      
      @Override
      public void onReceive(Context context, Intent intent) {
            
             //判断防盗系统是否开启
             boolean isprotecting= sp.getBoolean( "protecting", false);
            
             if(isprotecting){
            
             //获取当前SIM卡的序列号
            TelephonyManager  tm=(TelephonyManager) context.getSystemService(context.TELEPHONY_SERVICE );
            String simSerialNumber = tm.getSimSerialNumber();
            
             //获取sp 存储器中的Sim卡序列号
            String number= sp.getString( "sim", "");
            
             if(!simSerialNumber.equals(number)){   //发送警报短信给安全手机
                  String safeNumber= sp.getString( "safenumber", "");
                  
                   SmsManager smsManager = SmsManager.getDefault () //利用底层代码发送短信,短信内容不会出现在平台上
                  smsManager. sendTextMessage(safeNumber, null, "你的好友yang的手机可能被盗" , null, null);
                  
             }
            
            
            }
            

      }

}


------------------------------------------------------------------------------


/**
 * 接收到短信触发的广播事件
 * @author Administrator
 *
 */
public class SmsReceiver extends BroadcastReceiver {

      private static final String TAG = "SmsReceiver";

      @Override
      public void onReceive(Context context, Intent intent) {
            
            Object[] objs = (Object[]) intent.getExtras().get( "pdus");    //获取短信
             for (Object obj : objs) {
                  SmsMessage message = SmsMessage. createFromPdu((byte[]) obj);
                  String sender = message.getOriginatingAddress();
                  String body = message.getMessageBody();
                  
                   if( "#*location*#".equals(body)){
                        Log. i(TAG, "获取位置手机位置.." );
                        
                        
                  } else if( "#*alarm*#".equals(body)){
                        Log. i(TAG, "播放警报铃声" );
                        
                        MediaPlayer mediaPlayer = MediaPlayer.create(context,R.raw.ylzs);
                        mediaPlayer.setVolume(1.0f, 1.0f);
                        //player.setLooping(true);    //一直都播放下去
                        mediaPlayer.start();
                        abortBroadcast();
                        
                  } else if( "#*wipedata*#".equals(body)){
                        Log. i(TAG, "清除数据" );
                        
                  } else if( "#*lockscreen*#".equals(body)){
                        Log. i(TAG, "远程锁屏" );
                        
                  }
                  
                  
            }
            
      }

}




 
 
 
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值