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;
                    }
                }
            }
        }
    
    }
  • 相关阅读:
    hdu5914 Triangle 【贪心】
    2016中国大学生程序设计竞赛(ccpc 长春) Fraction【模拟】
    hdu 4034 【floyed变形】
    A
    hdu 2553 N皇后问题【dfs】
    【算法入门经典】7.4回溯法【八皇后问题】
    用javascript实现控制一个文本框的输入字数限制,超出字数限制文本框飘红显示-面试题
    Firebug控制台详解
    CSS实现兼容性的渐变背景(gradient)效果
    jQuery学习——入门jQuery选择器之层次选择器
  • 原文地址:https://www.cnblogs.com/taoshihan/p/5397195.html
Copyright © 2011-2022 走看看