1系统广播(关闭,锁并,声音,电话,信号,等系统提供的广播)(例如信号)

广播一般是在一个类中直接写出来而不用这样单独写出到一个类中,这样方便在监听到结果时处理数据

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

import android.net.ConnectivityManager;

import android.net.NetworkInfo;

import android.net.NetworkInfo.State;

import android.net.wifi.WifiManager;

import android.os.Parcelable;

import android.util.Log;

public class NetworkConnectChangedReceiver extends BroadcastReceiver {

/***

* 1 代码注册广播

*     IntentFilter filter = new IntentFilter();

filter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);

filter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);

filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);

registerReceiver(new NetworkConnectChangedReceiver(), filter);

2 在清单中配置

*/

@Override

public void onReceive(Context context, Intent intent) {

if (WifiManager.WIFI_STATE_CHANGED_ACTION.equals(intent.getAction())) {// 这个监听wifi的打开与关闭,与wifi的连接无关

int wifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, 0);

Log.e("H3c", "wifiState" + wifiState);

switch (wifiState) {

case WifiManager.WIFI_STATE_DISABLED:

break;

case WifiManager.WIFI_STATE_DISABLING:

break;

//

}

}

// 这个监听wifi的连接状态即是否连上了一个有效无线路由,当上边广播的状态是WifiManager.WIFI_STATE_DISABLING,和WIFI_STATE_DISABLED的时候,根本不会接到这个广播。

// 在上边广播接到广播是WifiManager.WIFI_STATE_ENABLED状态的同时也会接到这个广播,当然刚打开wifi肯定还没有连接到有效的无线

if (WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(intent.getAction())) {

Parcelable parcelableExtra = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);

if (null != parcelableExtra) {

NetworkInfo networkInfo = (NetworkInfo) parcelableExtra;

State state = networkInfo.getState();

boolean isConnected = state == State.CONNECTED;// 当然,这边可以更精确的确定状态

Log.e("H3c", "isConnected" + isConnected);

if (isConnected) {

} else {

}

}

}

// 这个监听网络连接的设置,包括wifi和移动数据的打开和关闭。.

// 最好用的还是这个监听。wifi如果打开,关闭,以及连接上可用的连接都会接到监听。见log

// 这个广播的最大弊端是比上边两个广播的反应要慢,如果只是要监听wifi,我觉得还是用上边两个配合比较合适

if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intent.getAction())) {

ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo gprs = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

NetworkInfo wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

Log.i("NetworkConnectChangedReceiver", "网络状态改变:" + wifi.isConnected() + " 3g:" + gprs.isConnected());

NetworkInfo info = intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);

if (info != null) {

Log.e("H3c", "info.getTypeName()" + info.getTypeName());

Log.e("H3c", "getSubtypeName()" + info.getSubtypeName());

Log.e("H3c", "getState()" + info.getState());

Log.e("H3c", "getDetailedState()"+ info.getDetailedState().name());

Log.e("H3c", "getDetailedState()" + info.getExtraInfo());

Log.e("H3c", "getType()" + info.getType());

if (NetworkInfo.State.CONNECTED == info.getState()) {

} else if (info.getType() == 1) {

if (NetworkInfo.State.DISCONNECTING == info.getState()) {

}

}

}

}

}

}

2自定义广播(根据需求自己写的广播)

注意发送广播和接受广播的对接

android中的广播大全,android中的广播相关推荐

  1. linux中make命令大全,Linux中的命令 make -f 是什么意思

    二.Makefile的文件名 默认的情况下,make命令会在当前目录下按顺序找寻文件名为"GNUmakefile"."makef ile"."Make ...

  2. android 文件删除命令大全,Android中删除sdcard里文件的命令

    Android中删除sdcard里文件的命令 有时我们需要删除android模拟器或手机上的sd卡文件,特别是模拟器上的,这时我们就需要借助于一些命令来帮助我们删除文件. 复制代码 代码如下: #重新 ...

  3. android显示通知图标大全,Android推送通知:图标未显示在通知中,而是显示白色方块...

    Android推送通知:图标未显示在通知中,而是显示白色方块 我的应用会生成通知,但我没有显示为该通知设置的图标.相反,我得到一个白色方块. 我已经尝试调整图标的大小(尺寸720x720,66x66, ...

  4. android中终端命令大全,Android系统在超级终端下必会的命令大全(八)

    系统安全相关命令su1.作用su的作用是变更为其它使用者的身份,超级用户除外,需要键入该使用者的密码.2.格式su [选项]... [-] [USER [ARG]...] 3.主要参数-f,--fas ...

  5. android控件使用大全,Android常见控件使用详解

    本文实例为大家分享了六种Android常见控件的使用方法,供大家参考,具体内容如下 1.TextView 主要用于界面上显示一段文本信息 2.Button 用于和用户交互的一个按钮控件 //为Butt ...

  6. android java adb命令大全,Android adb命令备份恢复手机信息

    假设你已经在Windows下安装了Android SDK,并且更新到最新版 步骤: 1.通过USB连接你的设备,打开命令行 2.一般地,输入"adb devices"检测设备是否连 ...

  7. android 下拉框大全,Android 下拉列表Spinner

    在UI中经常会使用到下拉列表,在android控件中有两个下拉列表控件: Spinner AppCompatSpinner 兼容低版本,在高版本中才能使用的方法换了V7下的Spinner后可以兼容到2 ...

  8. android显示通知图标大全,Android应用开发之android 桌面APP应用图标显示通知消息的数量显示与去除...

    本文将带你了解Android应用开发之android 桌面APP应用图标显示通知消息的数量显示与去除,希望本文对大家学Android有所帮助. android   桌面APP应用图标显示通知消息的数量 ...

  9. android+状态栏显示图标大全,Android应用图标在状态栏上显示实现原理

    一.前方 在研究<Android类似360,QQ管家那样的悬浮窗>突发奇想,想把应用的图标也显示到状态栏上,类似手机QQ,而有消息来时改变状态栏上的图标显示. 二.原理 其实很研究完后,才 ...

最新文章

  1. 技术人员如何转型为产品经理
  2. node 同步js代码-超越昨天的自己系列(5)
  3. php 批量转换文档编码格式_据说是国内最好的文档格式转换网址~PDF,PPT,EXCEL,WORD互相转换...
  4. Val编程-特殊函数使用
  5. ubuntu经常提示:检测到系统程序出现问题
  6. check_mysql 脚本_如何使用myisamchk和mysqlcheck工具快速修复损坏的MySQL数据库文件
  7. Python 数据结构与算法 —— 链表
  8. 两路共享LSTM时序数据预测实战+界面可视化应用
  9. python实时语音转写_语音识别 - 实时语音转写 - 《科大讯飞REST_API开发指南》 - 书栈网 · BookStack...
  10. 利用支付宝和浙江图书馆网站免费获取知网文献(亲测可用)
  11. SEO内链优化,网站内部链接优化方法
  12. 蓝屏信息0x0000000A、 0x00000050、 0x0000001A错误分析
  13. 如何换ionic里面的图标
  14. 浅谈用户研究那些事(上)定性研究
  15. 北理工嵩天Python语言程序设计笔记(10 Python计算生态概览)
  16. ssh 使用新法:公网(合法 ip)用户访问内网(私有 ip)服务器(http,ftp,sshd,cvs...),
  17. 2020-08-04 html的js位置 + css的flex实现九宫格 + JS的Array + 软技能的硬编码
  18. 网页视频播放插件ckplayer的使用-详细介绍
  19. vscode插件扩展 js代码高亮显示问题,美化问题,颜色问题
  20. Modbus 通讯协议 (RTU传输模式)

热门文章

  1. 中大计算机考研复试刷人太狠,惨!658人进复试刷掉570多人!盘点21考研复试比奇高、刷人狠的院校专业!...
  2. ajax调取mysql数据显示在html_jQuery+Ajax+js请求json格式数据并渲染到html页面
  3. postgresql源码学习(一)—— 源码编译安装与gdb调试入门
  4. 【项目分享】赶集团购Web App开发总结
  5. hugo博客html创建目录,使用Hugo来生成静态博客
  6. 盘整基调不改,沪指2100点再获支撑
  7. Discuz宣布关闭发言权,社区时代终结
  8. matlab Fourier变换--方波信号的分解与重建
  9. 荣耀8x系列新机解锁双喇叭设计,小米没做到的它做到了
  10. web前端入门到实战:CSS实现雨滴动画效果