以下是短信广播接收内容步骤:

1. 常见一个接收类,此类继承BroadcastReceiver ,需要创建一个action;

2.需要在AndroidManifest中注册这个接收类(关键字receiver)并为action绑定,最后注册短信接收权限

<receiver android:name="EX06_01_SMSreceiver"> //继承BroadcastReceiver 的类名

<!-- 設定要捕捉的訊息名稱為provider中Telephony.SMS_RECEIVED --> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> //在 BroadcastReceiver 创建的action </intent-filter> </receiver> </application> <uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>

3.在继承BroadcastReceiver 的类中,复写的onReceive方法的操作

/* 判断传来的Intent中的Action类型*/

if (intent.getAction().equals(mACTION)) { /*创建字符串变量sb*/

StringBuilder sb = new StringBuilder();

/*接收由Intent传来的数据*/

Bundle bundle = intent.getExtras();

/*判断Intent有无数据*/

if (bundle != null)

{

/* pdus为 android内置短信参数 identifier

* 通过bundle.get("")返回一包含pdus对象ン*/

Object[] myOBJpdus = (Object[]) bundle.get("pdus");

/*构建短信对象array,并根据收到的对象长度来定义array的大小*/

SmsMessage[] messages = new SmsMessage[myOBJpdus.length];

for (int i = 0; i<myOBJpdus.length; i++) {

messages[i] = SmsMessage.createFromPdu ((byte[]) myOBJpdus[i]); }

/* 把传来的短信合并定义在stringbuffer中 */

for (SmsMessage currentMessage : messages) {

sb.append("接收到来自:\n");

/* 发送人电话号码 */

sb.append(currentMessage.getDisplayOriginatingAddress());

sb.append("\n------传来的短信------\n");

/* 取得传来的信息*/

sb.append(currentMessage.getDisplayMessageBody()); } }

/* 以(Toase)形式展示 */

Toast.makeText(context, sb.toString(), Toast.LENGTH_LONG).show();

Intent i = new Intent(context, EX06_01.class);

/*使指定Activity显示在屏幕栈的最前方*/

i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(i); } }

更多相关文章

  1. android自定义Spinner下拉菜单样式并获得选项的值
  2. Android: 自定义Tab样式,一种简单的方式。
  3. android 自定义ripple
  4. Android 自定义标签属性设置及使用

随机推荐

  1. 流程控制语句、函数的参数与返回值、模板
  2. 微信小程序模版渲染详解
  3. js事件/dom操作/定时
  4. 微信小程序 天气预报开发实例代码源码
  5. 微信小程序实现简易封装弹窗
  6. 闭包的原理与经典应用场景 、访问器属性
  7. 微信小程序实现漂亮的弹窗效果
  8. 获取表单元素,dom树的遍历与常用属性
  9. js闭包/类创建/解构赋值
  10. 头像结构怎么画?人物头像素描步骤