zoukankan      html  css  js  c++  java
  • android入门——BroadCast(1)

    使用广播要定义一个广播接收类,如

     1 package com.example.wkp.broadcast;
     2 
     3 import android.content.BroadcastReceiver;
     4 import android.content.Context;
     5 import android.content.Intent;
     6 import android.os.Bundle;
     7 import android.telephony.SmsMessage;
     8 import android.util.Log;
     9 
    10 /**
    11  * Created by wkp on 2016/9/20.
    12  */
    13 public class MyReceiver extends BroadcastReceiver {
    14     @Override
    15     public void onReceive(Context context, Intent intent) {
    16         //第一个参数携带Receiver运行信息 第二个参数携带广播的详细内容
    17         Log.v("hh","get smsMessage");
    18         //取出intent数据
    19         Bundle bundle=intent.getExtras();
    20         //得到短信实体,一个SmsMessage对象可以保存140字节,号码在数组的0号,后面的全部是内容
    21         //如果内容太多,那么SmsMessage数组的长度就会很大
    22         Object[] object=(Object[])bundle.get("pdus");
    23         SmsMessage[] messages=new SmsMessage[object.length];
    24         for(int i=0;i<messages.length;i++){
    25             messages[i]=SmsMessage.createFromPdu((byte[])object[i]);
    26             //得到短信内容
    27             Log.v("hehe",messages[i].getOriginatingAddress());
    28 
    29         }
    30         //得到短信号码
    31         Log.v("haha",messages[0].getMessageBody());
    32     }
    33 }
    MyReceiver.java

    可以采用动态和静态注册广播两种形式

    静态:

     <!--静态注册 -->
    <receiver android:name=".MyReceiver">
    <intent-filter>
    <!-- 动作 打开飞行模式时触发广播 -->
    <!--<action android:name="android.intent.action.AIRPLANE_MODE"/>-->
    <!-- 收到短信时 暂时无法实现 -->
    <!--<action android:name="android.provider.Telephony.SMS_RECEIVED"/>-->
    <!--<action android:name="android.provider.Telephony.SMS_DELIVER"/>-->
    </intent-filter>
    </receiver>


    动态:onCreate方法中
    //        动态注册
    // 动态注册不启动app广播无效
    IntentFilter filter=new IntentFilter();
    //开关飞行模式时接收广播
    filter.addAction("android.intent.action.AIRPLANE_MODE");
    //filter.addAction("android.provider.Telephony.SMS_RECEIVED");
    registerReceiver(receiver,filter);
  • 相关阅读:
    C-Lodop 非典型应用
    这里有个坑---js日期格式yyyy-MM-dd与yyyy/MM/dd
    这里有个坑---[NotMapped]不要忘了加
    这里有个坑---entity为null的问题
    数据库优化小技巧总结
    前端优化小技巧总结
    前端日志探讨二
    25.密码学知识-对称加密-2——2019年12月19日
    24.mongodb可视化工具部署——2019年12月19日
    22.Express框架——2019年12月19日
  • 原文地址:https://www.cnblogs.com/wangkaipeng/p/5893212.html
Copyright © 2011-2022 走看看