参考:

http://blog.csdn.net/junjieking/article/details/6867594

http://blog.csdn.net/yangshangwei/article/details/50705196

当系统收到短信时,会发出一个action名称为android.provier.Telephony.SMS_RECEIVED的广播Intent,该Intent存放了接收到的短信内容,使用名称 “pdus”即可从Intent中获取短信内容。

pdus是一个object类型的数组,每一个object都是一个byte[]字节数组,每一项为一条短信。

Object[] pduses= (Object[])intent.getExtras().get("pdus");

for(Object pdus: pduses){

byte[] pdusmessage = (byte[])pdus;

SmsMessage sms = SmsMessage.createFromPdu(pdusmessage);

String mobile = sms.getOriginatingAddress();//发送短信的手机号码

String content = sms.getMessageBody(); //短信内容

Date date = new Date(sms.getTimestampMillis());

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String time = format.format(date);  //得到发送时间

}

由于createFromPdu(byte[]) method was deprecated in API level 23. Use createFromPdu(byte[], String) instead.

String format = intent.getStringExtra("format");SmsMessage smsMessage;if(Build.VERSION.SDK_INT < 23){    smsMessage = SmsMessage.createFromPdu((byte[])obj) ;}else{    smsMessage = SmsMessage.createFromPdu((byte[])obj,format) ;}


实现步骤:

1.自定义广播接收器,继承BroadcastReceiver类,并重写onReceive()方法。

onReceive的生命周期为10秒,所以里面的操作不能超过10秒

2.注册广播:动态注册或静态注册

3.声明短信接收权限:







更多相关文章

  1. 单元测试;Android应用程序架构;电话拔号器;短信发送器
  2. 初学Android,短信管理器之发送短信(六十五)
  3. 电话短信问题
  4. android画图---图像的扭曲
  5. android AudioTrack 播放 正弦波 方波
  6. android之xml对象到json对象的转化
  7. android的日积月累-监听短信
  8. androidにはOpenGLを勉強する
  9. Android(安卓)string-array简单使用

随机推荐

  1. 在Android java代码中如何改变文件的权限
  2. Ubuntu下搭建Android NDK开发环境[转]
  3. 解决android listview中OnItemClickListe
  4. android 神奇的粗体设置
  5. Android饼状图的绘制
  6. Android中List、Set、Map数据结构详解
  7. 从Android到Swift iOS开发:语言与框架对比
  8. 在Linux中运行Android软件
  9. Android经典项目案例开发实战宝典
  10. 《BAT大咖助力 全面升级Android面试笔记