[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;
                }
            }
        }
    }

}
时间: 2024-10-10 07:55:35

[android] 手机卫士接收短信指令执行相应操作的相关文章

用自己的Android手机做迷你短信机

1.Android httpserver 和 http调试 Android http server  : httpcore PC http client  : httpdebug 2.短信发送 Android自带的android.telephony.SmsManager包 3.源码: package com.example.httpservertest; import java.io.IOException; import java.io.InterruptedIOException; impo

Android手机使用广播监听手机收到的短信

我们使用的Android手机在收到短信的时候会发出一条系统广播.该条广播中存放着接收到的短信的详细信息.本文将详细介绍如何通过动态注册广播来监听短信. 注册广播有两种方式,一种是动态注册,另一种是静态注册.动态注册,顾名思义就是在程序运行时注册的,需要用到广播的时候就注册,用完即销毁.静态注是在AndroidManifest.xml中注册的,在<application>中使用<receiver>标签注册. 那么如何创建一个监听短信的广播接收器呢,其实只需要新建一个类,让这个类继承B

Android广播接收短信的简单实现

说明: 接受短信广播,由Intent解析出短信内容明文, intent中的短信时已pud形式传出的,即byte[][]二位数组, 需要转化出明文SmsMessage.createFromPdu(pdus[i]) 广播接收器: public class SmsReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent != null

Android广播组件实践——短信黑名单

转载请注明出处:http://blog.csdn.net/chengbao315/article/details/51011358 相关阅读: Android服务组件案例:http://blog.csdn.net/chengbao315/article/details/50997218 上回书我提到了想要编写安卓四大组件案例的想法,那么说到做到,这次我就来做一个Android广播组件的案例.这次想要模仿手机360软件的短信黑名单功能,可以实现号码加入黑名单,后台运行程序,短信来到时进行拦截,并可

[android] 手机卫士手机实现短信指令获取位置

获取位置  新建一个service的包 新建一个GPSService类继承系统的Service类 清单文件中注册一下 重写onCreate()方法,服务创建的时候回调 重写onDestroy()方法,服务销毁的时候回调 把上一节的代码拿到这个地方来 得到用户移动后的最后一次的位置,保存到SP中 转换标准坐标为火星坐标,数据库文件放到assets目录下,把ModifyOffset.java放在service包下面 获取ModifyOffset对象,通过ModifyOffset.getInstanc

手机安全卫士------手机防盗页面之发送短信&amp;接收短信

功能需求: 接上一篇文章,如果sim卡变更,则发送一条报警短信给安全号码 接收从安全号码发来的短信,如果内容为报警指令,则根据相应的报警指令做出相应的操作 发送短信 1.创建一个SmsManager对象 SmsManager manager = SmsManager.getDefault(); 2.通过SharedPreferences获取安全号码 String number 3.创建短信内容: content 4.分割短信: 由于每条短信只能70个字,所以我们要把它分割一下:manager.d

android基础----&gt;发送和接收短信

收发短信应该是每个手机最基本的功能之一了,即使是许多年前的老手机也都会具备这项功能,而Android 作为出色的智能手机操作系统,自然也少不了在这方面的支持.今天我们开始自己创建一个简单的发送和接收短信的应用. 目录导航 接收短信 发送短信 友情链接 接收短信 项目的结构如下:一个简单的接收和发送短信的功能 一.定义一个接收短信的广播:当手机接收到一条短信的时候,系统会发出一条值为android.provider.Telephony.SMS_RECEIVED 的广播,这条广播里携带着与短信相关的

android接收短信——framework处理流程(android 5.1)

modem层不懂,所以直接从RIL.java开始.以电信卡接收短信为例 modem通知RIL.java中的 RILReceiver处理接收信息 class RILReceiver implements Runnable { byte[] buffer; RILReceiver() { buffer = new byte[RIL_MAX_COMMAND_BYTES]; } @Override public void run() { ...... //建立socked连接,读取数据 processR

android学习十四(android的接收短信)

收发短信是每个手机基本的操作,android手机当然也可以接收短信了.android系统提供了一系列的API,使得我们可以在自己的应用程序里接收和发送短信. 其实接收短信主要是利用我们前面学过的广播机制.当手机接收到一条短信的时候,系统会发出一条值为andorid.provider.Telephony.SMS_RECEIVED的广播,这条广播里携带着与短信相关的所有数据.每个应用程序都可以在广播接收器里对它进行监听,收到广播时在从中解析出短信的内容即可. 下面我们来个具体的例子实践下吧,新建一个