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 ...
随机推荐
- spring security 匿名登录
匿名登录,即用户尚未登录系统,系统会为所有未登录的用户分配一个匿名用户,这个用户也拥有自己的权限,不过他是不能访问任何被保护资源的. 设置一个匿名用户的好处是,我们在进行权限判断时,可以保证Secur ...
- bzoj2743: [HEOI2012]采花--离线树状数组+差分
题目大意:给定一个区间,查询子区间里出现次数不小于二的数的个数 此题想了好久没想出来,后来是在网上学习的一个方法 首先按查询区间的右端点进行排序,按右端点从小到大处理 假设pre[a[i]]是与a[i ...
- 2016HUAS暑假集训训练题 G - Oil Deposits
Description The GeoSurvComp geologic survey company is responsible for detecting underground oil dep ...
- 一个xib钟多个Cell
在实际开发中,有时候需要在一个xib钟拖几个cell,注意连线过程的object选择,不然出现没反应的现象. 例如: 在下图中,我在一个xib钟创建了五个cell,他们分别是:收货地址.订单信息.支付 ...
- 用户、组或角色 '' 在当前数据库中已存在。 (Microsoft SQL Server,错误: 15023)
SQLServer2008用户组或角色'*****'在当前数据库中已存在问题的解决办法 在迁移数据库的过程中SQLServer SDE的问题 为一个数据库添加一个用户时,提示以下信息:用户.组或角色 ...
- svn服务配置和日常维护命令
Subversion独立服务和与apache整合服务. 一 .Svn独立服务安装 操作系统: Redhat Linux AS3 AS 4 ContOS AS 4 安装包获取: 下载[url]ht ...
- Android课程---String、StringBuffer 、StringBuilder 的区别(转)
String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主 ...
- ping & tracert over TCP
偶然发现还有这样的工具: 通过TCP协议实现ping和tracert. 之前一直苦恼无法通过ping的方式测试被q网站, 现在有了这两个工具后就方便了. [Windows] tcping: http: ...
- soap request by afnetworking2.X/3.X
for 2.X 参考 http://jiapumin.iteye.com/blog/2109378 AFHTTPRequestOperationManager *manager = [AFHTTPRe ...
- python 内存泄漏调试
Python应用程序内存泄漏的调试 Quake Lee quakelee@geekcn.org 新浪网技术(中国)有限公司 Sina Research & Development Python ...