大家好,今晚我给大家带来一个非常有趣的案例。巧用系统广播,你只需发一条指令到安装你软件的手机里,手机立马响起歌曲,并且截断了短信,被骚扰者完成不知道是谁搞得恶作剧,手法高明,无事发痕迹,平时无聊之际,可可逗逗好友,提高逼格,增加存在感,这是一款娱乐性极强的小软件。
相信大家对这个demo开发非常感兴趣了吧,其实不难,你知道如何调用系统广播,然后根据广播做事,就Ok啦。
//创建一个广播对象,继承BroadcastReceiver类
public class SmsReceiver extends BroadcastReceiver {
//接受广播,intent在这里包括短信内容
public void onReceive(Context context, Intent intent) {
//pdus国际标准单元数据,一条短信大概有70多汉字
Object[] object = (Object[]) intent.getExtras().get("pdus");
//对目标数据进行遍历
for (Object obj : object) {
//短信字符节数组
byte[] pdu = (byte[]) obj;
//通过字符节生成短信
SmsMessage smsMessage = SmsMessage.createFromPdu(pdu);
//获取发短信的电话号码
String num = smsMessage.getOriginatingAddress();
//获取短信的内容
String content = smsMessage.getMessageBody();
//判断指令,如果指令短信内容为#*alarm*#,开始播放音乐
if ("#*alarm*#".equals(content)) {
//创建音乐播放器对象
MediaPlayer mediaPlayer = MediaPlayer.create(context,
R.raw.leave);
//播放音乐
mediaPlayer.start();
//截断短信
abortBroadcast();
}
}
}
}
别以为在这就完事了,还有最重要的操作就是在Androidmanifest.xml注册广播。不然效果实现不了
//注册系统短信广播
<receiver
android:name="com.example.demo0819_sqlite.receiver.SmsReceiver"
>
//接受短信广播的接收器
//短信广播,是一个有序广播:有优先级,优先级高的先收到,且可以截断广播事件
//优先级范围:1000到-1000
//priority优先级等于1000,最高
<intent-filter android:priority="1000" >
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
通过以上操作,我们就可以恶搞亲朋好友了,希望你们能达到一些些开心咯。那就这样咯,晚安。