androidBroadCast总结
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总结的更多相关文章
- Android-broadcast静态动态广播
广播的静态和动态类型 静态广播: 1.继承之broadcastreceiver public class MyStaticBroadcastReceiver extends BroadcastRece ...
- Android-Broadcast(广播)
1.四大组件之BroadcastReceiver (1)Broadcast(广播)--一种广泛运用在应用程序之间传输信息的机制 (2)BroadcastReceiver(广播接受者)--是对发送过 ...
- Android-Java-接口Interface
接口Interface 与 抽象类不同: 抽象类关注的是事物本质,例如:水果Fruit 属于抽象的,说去买水果 是模糊的概念 是抽象的概念 不具体,到底买什么水果不知道,而水果包含了 香蕉,橘子 很多 ...
- Android——Broadcast Receive 相关知识总结贴
Android系统中的广播(Broadcast)机制简要介绍和学习计划 http://www.apkbus.com/android-99858-1-1.html android----BroadCas ...
- Android-快速查找索引篇
01.Android-UI汇总 01.Android-TextView跑马灯效果 02.Android-Activity 01.Test 03.Android-数据存储 01.Test 04.Andr ...
- 【关于使用SpringJUnit4ClassRunner单元测试报错问题】
今天单元测试如下的代码的时候发现项目老是报错: package com.yhb.jsxn.service; import java.text.SimpleDateFormat; import java ...
- PHP友盟推送消息踩坑及处理
公司的客户端的推送选用友盟推送,但是友盟的官方文档描述很少,对新手很不友好,所以特写此采坑纪录,废话不多说上代码. 公司业务只涉及单播和广播.所以只提供了单播和广播,业务拓展的话会补充其余部分. 消息 ...
- 友盟umeng消息推送直接复制就能用(纯干货)
一. 单播推送(unicast) 1.1 图 1.2 代码 1 /** 2 * 根据设备的deviceToken, 去给指定的设备推送消息 3 * 4 * @param deviceToken 单个d ...
随机推荐
- javascript 变量,作用域,内存管理小结
js的变量保存两种类型的数据——基本数据类型与引用类型.具有以下几点特征: 变量: 1)基本类型值在内存中占固定大小的空间,因此被保存在栈内存中; 2) 把保存基本类型值得变量赋给另一个变量,会创 ...
- javascript特效--制作背景电子钟(整点时祝贺生日快乐)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- AJAX 后台返回多种数据
前台ajax(jsp文件): (1) $.ajax({ type: "POST", url: "/dragable/demo/finishTopo", asyn ...
- 手机横屏竖屏css
@media是css3中新定义的,功能非常强大,顾名思义PC是无法匹配横竖屏的,所以orientation只对移动设备起效. 1.头部声明 复制代码 代码如下: <meta name=" ...
- 一个人的旅行-Floyd
一个人的旅行 Time Limit : 1000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submis ...
- 杭电ACM 1178
#include<stdio.h>#include<string.h>#include<math.h>#include<ctype.h>#include ...
- 算法与数据结构题目的 PHP 实现:栈和队列 由两个栈组成的队列
思路:同样使用 PHP 的数组模拟栈.栈的特点是先进后出,队列的特点是先进先出,可以用第一个栈(StackPush)作为压入栈,压入数据的时候只往这个栈中压入数据,第二个栈作(StackPop)为弹出 ...
- vba 工作案例1
手上有一份关于广东22个地市的数据,行列不符合预期的表结构,稍vba转换下,再text import 到oracle. Sub copy() ' ' copy 宏 ' ' 快捷键: Ctrl+Shif ...
- 【转】arcgis server site 快速恢复与重建
作者:suwenjiang 出处:http://www.cnblogs.com/myyouthlife/ 具体链接:http://www.cnblogs.com/myyouthlife/p/48985 ...
- [转]如何将SQL Server表驻留内存和检测
注意这个功能在SQL2005后已经废弃,因为SQL2005会自动管理哪些表常驻内存. 将SQL Server数据表驻留内存是SQL Server提供的一项功能,在一般小型系统的开发过程中估计很少会涉及 ...