浅析Android手机卫士接收短信指令执行相应操作
推荐阅读:
浅析Android手机卫士sim卡绑定
深入浅析Android手机卫士保存密码时进行md5加密
详解Android手机卫士设置向导页面
浅析Android手机卫士关闭自动更新
浅析Android手机卫士自定义控件的属性
浅析Android手机卫士读取联系人
通过广播接收者,接收到短信,对短信内容进行判断,如果为我们指定的值就执行相应的操作。
如果短信内容是”#*location*#”就执行,获取手机位置
如果短信内容是”#*alarm*#”就执行,播放报警音乐
如果短信内容是”#*wipedata*#”就执行,远程清除数据
如果短信内容是”#*lockscrreen*#”就执行,远程锁屏
把短信的优先级定义成1000
使用模拟器发送短息的时候,会自动给发送号码拼接上155xxxx等,判断时候会不准确,使用String对象的contains()方法判断是否包含我们保存的安全号码
在res目录下创建raw文件夹,把音乐文件放进去
调用MediaPlayer.create()方法,得到MediaPlayer对象,参数:上下文,资源文件
注意资源文件R所在的包,不要导成系统下的
调用MediaPlayer对象的start()方法
此时播放的警报静音都不管用,因为目标手机如果正在听音乐调的是多媒体是管用的,否则不管用
SmsReceiver.java
packagecom.qingguow.mobilesafe.receiver;
importcom.qingguow.mobilesafe.R;
importandroid.content.BroadcastReceiver;
importandroid.content.Context;
importandroid.content.Intent;
importandroid.content.SharedPreferences;
importandroid.media.MediaPlayer;
importandroid.telephony.SmsMessage;
importandroid.widget.Toast;
publicclassSmsReceiverextendsBroadcastReceiver{
privateSharedPreferencessp;
@Override
publicvoidonReceive(Contextcontext,Intentintent){
sp=context.getSharedPreferences("config",Context.MODE_PRIVATE);
//获取短信内容
Object[]objs=(Object[])intent.getExtras().get("pdus");
for(Objectobj:objs){
SmsMessagesms=SmsMessage.createFromPdu((byte[])obj);
Stringbody=sms.getMessageBody();
Stringsender=sms.getOriginatingAddress();
StringsecSender=sp.getString("secphone","");
//判断是安全号码的短信
if(secSender.equals(sender)){
switch(body){
case"#*alarm*#"://发送报警音乐
//Toast.makeText(context,"播放报警音乐",1).show();
MediaPlayermp=MediaPlayer.create(context,R.raw.alarm);
mp.start();
abortBroadcast();
break;
default:
break;
}
}
}
}
}
以上所述是小编给大家介绍的Android手机卫士接收短信指令执行相应操作的相关知识,希望对大家以上帮助!