BoradCast广播
1、接受广播 BroadCastReceiver(接收系统的广播)
1-1:电话的广播
1-1-1:拨打电话的广播
1.创建一个类,继承BoradcastReceiver
2.重写它的onReceive方法
3.在AndroidManifest.xml中注册广播
<receiver android:name="com.style.boradcast.PhoneBoradCastReceiver">
<intent-filter >
<!-- 设置接受的频道 :电话拨出的频道-->
<action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
</intent-filter>
</receiver>
4.添加权限:
<!-- 监听拨出电话的状态的权限 -->
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />

1-1-2:接收电话的广播
频道:<action android:name="android.intent.action.PHONE_STATE"/>
权限:<uses-permission android:name="android.permission.READ_PHONE_STATE" />
电话管理者:
TelephonyManager m = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
TelephonyManager.CALL_STATE_RINGING://响铃
TelephonyManager.CALL_STATE_IDLE://挂断
TelephonyManager.CALL_STATE_OFFHOOK://接听中
获取来电号码:String number = intent.getStringExtra("incoming_number");

1-2:短信的广播
频道:<action android:name="android.provider.Telephony.SMS_RECEIVED" />
权限:<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
获取短信:Object[] objs = (Object[]) intent.getExtras().get("pdus");
短信管理器:SmsManager manager = SmsManager.getDefault();//获取我们的短息管理器
短信发送:manager.sendTextMessage("15116346673", null,sMessage.getMessageBody(),null,null);

2、发送广播
有序:sendOrderedBroadcast(intent,null);
无序:sendBroadcast(intent);

3、广播(有序+无序广播)
http://blog.csdn.net/ljb_blog/article/details/8650705
有序:
按照顺序持续的向下广播:先后顺序(如果有优先级,高者先得,如果没有,按注册的顺序来)
有序广播可以中断和修改广播的数据
无序:
不保证传播的接收到广播的先后顺序
不能中断和修改广播的内容
一般自带的电话和短信监听就是这样(不推荐使用)

4、静态注册广播和动态注册广播
静态注册:
如上。
动态注册:
MyReceiver myReceiver = new MyReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction("android.firefly.test");
filter.setPriority(5000);
registerReceiver(myReceiver,filter);
取消:
unregisterReceiver(myReceiver);

5.自己的广播
假设在按钮下进行:
public void Sure(View v){
Intent i = new Intent();
i.setAction("com.firefly.BroadCast");
i.putExtra("abc", "这里是传值过去的内容");
sendOrderedBroadcast(i,null);
}
频道:
<action android:name="com.firefly.BroadCast" />
新建一个类,继承BroadCast
if (intent.getAction().equals("com.firefly.BroadCast")) {
String str = intent.getStringExtra("abc");
Toast.makeText(context, "My:"+str, 0).show();
//中断(如果有序广播,会成功,无序则会报错)
abortBroadcast();
//如果要改值,只能这样
String data = "有毒!";
setResultData(data);
}

androidBroadCast总结的更多相关文章

  1. Android-broadcast静态动态广播

    广播的静态和动态类型 静态广播: 1.继承之broadcastreceiver public class MyStaticBroadcastReceiver extends BroadcastRece ...

  2. Android-Broadcast(广播)

      1.四大组件之BroadcastReceiver (1)Broadcast(广播)--一种广泛运用在应用程序之间传输信息的机制 (2)BroadcastReceiver(广播接受者)--是对发送过 ...

  3. Android-Java-接口Interface

    接口Interface 与 抽象类不同: 抽象类关注的是事物本质,例如:水果Fruit 属于抽象的,说去买水果 是模糊的概念 是抽象的概念 不具体,到底买什么水果不知道,而水果包含了 香蕉,橘子 很多 ...

  4. Android——Broadcast Receive 相关知识总结贴

    Android系统中的广播(Broadcast)机制简要介绍和学习计划 http://www.apkbus.com/android-99858-1-1.html android----BroadCas ...

  5. Android-快速查找索引篇

    01.Android-UI汇总 01.Android-TextView跑马灯效果 02.Android-Activity 01.Test 03.Android-数据存储 01.Test 04.Andr ...

  6. 【关于使用SpringJUnit4ClassRunner单元测试报错问题】

    今天单元测试如下的代码的时候发现项目老是报错: package com.yhb.jsxn.service; import java.text.SimpleDateFormat; import java ...

  7. PHP友盟推送消息踩坑及处理

    公司的客户端的推送选用友盟推送,但是友盟的官方文档描述很少,对新手很不友好,所以特写此采坑纪录,废话不多说上代码. 公司业务只涉及单播和广播.所以只提供了单播和广播,业务拓展的话会补充其余部分. 消息 ...

  8. 友盟umeng消息推送直接复制就能用(纯干货)

    一. 单播推送(unicast) 1.1 图 1.2 代码 1 /** 2 * 根据设备的deviceToken, 去给指定的设备推送消息 3 * 4 * @param deviceToken 单个d ...

随机推荐

  1. MyBatis环境搭建配置文件+入门视频下载

    1.MyBatis优点 操作简单话,代码量少,效率高,成本就降低了 2.MyBatis缺点 参数只能限制为一个 selece语都要手动来写 3.与JDBC的关系:是对JDBC的扩展 把sql语句和ja ...

  2. IOS第一天多线程-02NSThread基本使用

    **** #import "HMViewController.h" @interface HMViewController () @end @implementation HMVi ...

  3. mvn打包idea项目

    首先 通过cmd进入docs 然后用cd命令进入项目文件夹所在路径 然后输入mvn -Dmaven.test.skip=true package//-Dmaven.test.skip=true跳过测试

  4. CSS权威指南 - 内边距 边框 和 外边距

    九十年代的完全用表格布局,简单的段落边框都需要用表格.CSS让布局更方便. 基本元素框 basic element boxes 如同第七章基本视觉格式化那一章讲到,每个文档元素会生成一个元素框,这个框 ...

  5. A trip through the Graphics Pipeline 2011_07_Z/Stencil processing, 3 different ways

    In this installment, I’ll be talking about the (early) Z pipeline and how it interacts with rasteriz ...

  6. ssh secure shell

    ssh secure shell 和securecrt xhell一样,都是终端工具

  7. c#组元(Tuple)的使用

    组元(Tuple)是C# 4.0引入的一个新特性,可以在.NET Framework 4.0或更高版本中使用.组元使用泛型来简化类的定义,多用于方法的返回值.在函数需要返回多个类型的时候,就不必使用o ...

  8. C#中 MD5和SHA1加密代码

    Pwd = FormsAuthentication.HashPasswordForStoringInConfigFile(entity.Pwd, "MD5"); Pwd = For ...

  9. 20145209&20145309信息安全系统设计基础实验报告 (3)

    实验内容.步骤与体会: 实验过程的理解,实验指导书中知识点的理解. (1)为什么在双击了GIVEIO和JTAG驱动安装文件后还需要手动进行配置? 因为安装文件只是将驱动文件释放了出来,并没有在系统中将 ...

  10. 对list进行切片

    取一个list的部分元素是非常常见的操作.比如,一个list如下: >>> L = ['Adam', 'Lisa', 'Bart', 'Paul'] 取前3个元素,应该怎么做? 笨办 ...