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 ...
随机推荐
- 安装时遇到:正在尝试其它镜像。 http://mirrors.btte.net/centos/7.2.1511/extras/x86_64/repodata/repomd.xml: [Errno 14] curl#6 - "Could not resolve host: mirrors.btte.net; 未知的错误"
我出现这种错误是因为网络链接问题,因为我设置虚拟机网络链接为VmNET8,设置了nat模式,使得我本地机可以访问虚拟机的linux服务器.但是打开虚拟机的浏览器却不能上网了.所以现在我用xshell装 ...
- spring security remember me实现自动登录
1 默认策略 在我们自定义的login中增加一个选择框 <input type="submit" value="Login" /> <br/& ...
- 温故而知新 OOP
设计原则1: 找出应用中可能需要发生改变的地方,把它们独立出来,不要和那些不需要变化的代码混在一起换句话说,如果每次新的需求一来,都会使某方面的代码发生变化,此时你就可以确定,这部分代码属于不稳定代码 ...
- BizTalk 开发系列(三十九) BizTalk Server 2009技术概览
BizTalk Server 2009已经发布一段时间了,之前Beta版发布的时候也写过一篇文章<BizTalk Server 2009 Beta初体验>, 当时比较了2006 R2与20 ...
- 《迷宫》特点分析之NABCD
项目名称:迷宫 特点之一:死亡模式 特点描述:在路径上设置一个个点,每个点作为一个障碍或加成点,设置各种类型陷阱来减少角色血量,还有加血和各种加成设置. N:普通迷宫形式单一,游戏过程较平淡,缺乏一定 ...
- lua 可变参数
问题:对可变参数传递的时候,采用如下方案: local cellData = {MsgText = msgText,Param = ...,CallBackFunc = callBackFunc,Ca ...
- 阿里云专有网络与弹性公网IP
阿里云服务器经典网络和专有网络究竟有什么区别? 在用户提交订单购买阿里云ECS云服务器时,会面临怎样选择网络类型的烦恼,阿里云服务器定制购买时,网络类型里的经典网络和专有网络(VPC)是什么含义,该怎 ...
- 任务中使用wget,不保存文件
*/20 * * * * wget --output-document=/dev/null http://www.domain.com 使用wget每过20分钟访问一次,不保存访问文件内容
- 找规律 ZOJ3498 Javabeans
Javabeans are delicious. Javaman likes to eat javabeans very much. Javaman has n boxes of javabeans. ...
- redis 自启动
第一步: 在/etc/init.d/目录下建立一个名字为 redis 的启动脚本 cd /etc/init.d touch redis 然后在这个脚本中添加如下脚本 <注意修改自己的PIDFI ...