文档章节

在android上监听网络状态的变更

李光正
 李光正
发布于 2015/10/15 14:53
字数 259
阅读 7
收藏 0
  开发过程中经常会遇到一种需求,在你的Activity中需要获得网络连接的状态,以便确认下一步的流程,之前设计过一个复杂的方法,后来发现每次网络状态发生变化了都会发广播出来,广播这是个好东西,有了广播,我们就可以灵活的去处理了。

    当然,首先要加权限 

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

这样,我们写receiver就可以了。


<receiver

    android:name="NetworkReceiver">

    <intent-filter>

        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />

    </intent-filter>
</receiver>

code里面写

public class NetworkReceiver extends BroadcastReceiver {



    protected Context    mContext;



    @Override

    public void onReceive(Context context, Intent intent) {

        mContext = context;

        // 第一种

        ConnectivityManager connectivityManager = (ConnectivityManager) context

                .getSystemService(Context.CONNECTIVITY_SERVICE);

        NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();

        NetworkInfo mobileNetInfo = connectivityManager

                .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

        showToast("Active Network Type", activeNetInfo);

        showToast("Mobile Network Type", mobileNetInfo);

        // 第二种

        NetworkInfo networkInfo = intent

                .getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);

        String extraInfo = intent

                .getStringExtra(ConnectivityManager.EXTRA_EXTRA_INFO);

        boolean isFailOver = intent.getBooleanExtra(

                ConnectivityManager.EXTRA_IS_FAILOVER, false);

        boolean noConnectivity = intent.getBooleanExtra(

                ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);

        NetworkInfo otherNetworkInfo = intent

                .getParcelableExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO);

        String reason = intent.getStringExtra(ConnectivityManager.EXTRA_REASON);

        //

        showToast("networkInfo", networkInfo);

        showToast("extraInfo", extraInfo);

        showToast("isFailOver", isFailOver);

        showToast("noConnectivity", noConnectivity);

        showToast("otherNetworkInfo", otherNetworkInfo);

        showToast("reason", reason);

    }



    public void showToast(String info, Object object) {

        if (object == null) {

            return;

        }

        Toast.makeText(mContext, info + " : " + object.toString(), 0).show();

    }
}




本文转载自:http://blog.csdn.net/liguangzhenghi/article/details/7864392

共有 人打赏支持
李光正
粉丝 5
博文 64
码字总数 0
作品 0
大兴
Android 9.0 Pie以下全中招的安卓新漏洞!可致设备被追踪

Nightwatch Cybersecurity于8月29日发布消息称,发现Android新漏洞,它使恶意应用程序得以绕过权限检查和现有的防护,访问系统广播信息。根据该通报,安全漏洞 CVE-2018-9489 不太可能得到任...

安卓绿色联盟
09/04
0
0
react native之获知设备联网或离线的状态信息。

NetInfo模块可以获知设备联网或离线的状态信息。 IOS 以异步的方式判断设备是否联网,以及是否使用了移动数据网络。 - 设备处于离线状态。 - 设备处于联网状态且通过wifi链接,或者是一个iOS...

Chason-洪
2017/10/17
0
0
《Android深入透析》之广播(Broadcast)

概述 在android中,Broadcast作为四大组件之一,被广泛的应用在android程序之间的数据传递。举一个大家都比较熟悉的例子来说明。在车上的时候大家都有收听广播的习惯,广播电台通过发送不同频...

朵朵和糖糖
2014/11/12
0
0
Android BroadcastReceiver

1、Android 监听屏幕解锁事件 http://blog.csdn.net/gf771115/article/details/7991892 2、Android利用系统广播---监听应用程序安装和卸载 http://blog.csdn.net/wangjia55/article/details......

当空皓月
2014/11/07
0
0
Android MediaPlayer基本使用方式

使用MediaPlayer播放音频或者视频的最简单例子: JAVA代码部分: public class MediaPlayerStudy extends Activity { private Button bplay,bpause,bstop; private MediaPlayer mp = new Med......

kiy
2014/04/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Python爬虫:Scrapy框架的安装和基本使用

大家好,本篇文章我们来看一下强大的Python爬虫框架Scrapy。Scrapy是一个使用简单,功能强大的异步爬虫框架,我们先来看看他的安装。 Scrapy的安装 Scrapy的安装是很麻烦的,对于一些想使用S...

糖宝lsh
22分钟前
2
0
Android Dialog几种对话框

1,普通对话框 2,单选对话框 3,多选对话框 4,日期选择对话框 5,时间选择对话框 6,日期选择对话框 7,进度条对话框 普通对话框 AlertDialog.Builder builder = new AlertDialog.Builde...

lanyu96
29分钟前
1
0
awk命令

-F选项的作用是指定分隔符。如果不加-F选项,则以空格或者tab为分隔符。print为打印操作,用来打印某个字段。$1为第1个字段,$2为第2个字段,以此类推。但是$0比较特殊,它表示整行: [root@cen...

野雪球
36分钟前
2
0
一切都靠大数据:滴滴已封禁4.3万人员、车辆

这段时间以来,滴滴出行相继出炉了各种整改措施,包括自身安全建设和外部社会共建,昨日就刚刚宣布正在筹备建立安全监督顾问委员会。 据媒体最新报道,9月30日,上海市交通委员会执法总队、上...

linuxCool
55分钟前
4
0
awk命令用法介绍

10月18日任务 9.6/9.7 awk 1.awk(上)(下) 1.awk 分段操作功能 指定分隔符,并把第一段打印出来,不会改动文件内容 将所有内容打印出来 awk 没有指定分隔符号,则会默认用空格或者空白字符...

hhpuppy
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部