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;
                    }
                }
            }
        }
    
    }
  • 相关阅读:
    java Socket Tcp 浏览器和服务器(二)
    java Socket Tcp 浏览器和服务器(一)
    java Socket Tcp示例三则(服务端处理数据、上传文件)
    java Socket Udp聊天
    centos 图形界面和命令行界面切换
    python 文件中的中文编码解决方法
    PostgreSQL与MySQL比较(转)
    Python 的开发环境
    Windows 下 pip和easy_install 的安装与使用
    Linux 下的下载文件命令
  • 原文地址:https://www.cnblogs.com/taoshihan/p/5397195.html
Copyright © 2011-2022 走看看