zoukankan      html  css  js  c++  java
  • [android] 手机卫士接收短信指令执行相应操作

    通过广播接收者,接收到短信,对短信内容进行判断,如果为我们指定的值就执行相应的操作

    如果短信内容是”#*location*#” 就执行,获取手机位置

    如果短信内容是”#*alarm*#” 就执行,播放报警音乐

    如果短信内容是”#*wipedata*#” 就执行,远程清除数据

    如果短信内容是”#*lockscrreen*#” 就执行,远程锁屏

    把短信的优先级定义成1000

    使用模拟器发送短息的时候,会自动给发送号码拼接上155xxxx等,判断时候会不准确,使用String对象的contains()方法判断是否包含我们保存的安全号码

    res目录下创建raw文件夹,把音乐文件放进去

    调用MediaPlayer.create()方法,得到MediaPlayer对象,参数:上下文,资源文件

    注意资源文件R所在的包,不要导成系统下的

    调用MediaPlayer对象的start()方法

    此时播放的警报静音都不管用,因为目标手机如果正在听音乐调的是多媒体是管用的,否则不管用

    SmsReceiver.java

    package com.qingguow.mobilesafe.receiver;
    
    import com.qingguow.mobilesafe.R;
    
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.content.SharedPreferences;
    import android.media.MediaPlayer;
    import android.telephony.SmsMessage;
    import android.widget.Toast;
    
    public class SmsReceiver extends BroadcastReceiver {
        private SharedPreferences sp;
        @Override
        public void onReceive(Context context, Intent intent) {
            sp=context.getSharedPreferences("config", Context.MODE_PRIVATE);
            //获取短信内容
            Object[] objs=(Object[]) intent.getExtras().get("pdus");
            for(Object obj:objs){
                SmsMessage sms=SmsMessage.createFromPdu((byte[])obj);
                String body=sms.getMessageBody();
                String sender=sms.getOriginatingAddress();
                String secSender=sp.getString("secphone", "");
                //判断是安全号码的短信
                if(secSender.equals(sender)){
                    switch (body) {
                    case "#*alarm*#"://发送报警音乐
                        //Toast.makeText(context, "播放报警音乐", 1).show();
                        MediaPlayer mp=MediaPlayer.create(context, R.raw.alarm);
                        mp.start();
                        abortBroadcast();
                        break;
                    default:
                        break;
                    }
                }
            }
        }
    
    }
  • 相关阅读:
    数据库中的float在实体中对应的竟是double
    VS2010让开发者受益新功能深入解读
    .net 缩略图 高品质
    不错.net图片水印类
    [转] asp.net url重写
    进制转换方法汇总
    c#中如何TextBox中輸入的換行符存入access數據庫
    .net高品质缩略图和低品质缩略图
    SQL Server中获得EXEC后面的sql语句或者存储过程的返
    C#动态创建图像的方法
  • 原文地址:https://www.cnblogs.com/taoshihan/p/5397195.html
Copyright © 2011-2022 走看看