惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
aimingoo的专栏
aimingoo的专栏
S
SegmentFault 最新的问题
博客园_首页
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
博客园 - 【当耐特】
月光博客
月光博客
C
Check Point Blog
T
The Blog of Author Tim Ferriss
罗磊的独立博客
博客园 - Franky
MongoDB | Blog
MongoDB | Blog
H
Help Net Security
Microsoft Security Blog
Microsoft Security Blog
B
Blog
阮一峰的网络日志
阮一峰的网络日志
腾讯CDC
美团技术团队
N
Netflix TechBlog - Medium
Stack Overflow Blog
Stack Overflow Blog
Y
Y Combinator Blog
L
LangChain Blog
The Cloudflare Blog

博客园 - 蔡清华

数据库中查询的各种连接(左连接,右连接,全连接,内连接,交叉连接,自连接) Android RenderScript 的使用基础篇 Android应用启动后自动创建桌面快捷方式 Android API教程:人脸检测(Face Detect) Android应用中通过AIDL机制实现进程间的通讯实例 Android开发:如何实现TCP和UDP传输 用户授权认证过程 Android应用自动更新功能的代码实现 Android蓝牙开发浅析 网络通信的中文乱码问题 Android开发之OpenGL+ES教程 android 示例源码 android 图片处理 Android应用如何实现换主题功能 android 开发环境搭建 Android 之 内存管理 Android编程获取网络连接状态(3G/Wifi)及调用网络配置界面 android 网络拨号流程 Android_launcher的源码详细分析
(转)android中 检查网络连接状态的变化,无网络时跳转到设置界面
蔡清华 · 2012-03-08 · via 博客园 - 蔡清华

1:

在AndroidManifest.xml中加一个声明

<receiver android:name="NetCheckReceiver">
    <intent-filter>
           <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
    </intent-filter>
</receiver>

NetCheckReceive.java文件如下

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;

public class NetCheckReceiver extends BroadcastReceiver{

    //android 中网络变化时所发的Intent的名字
    private static final String netACTION="android.net.conn.CONNECTIVITY_CHANGE";
    @Override
    public void onReceive(Context context, Intent intent) {

        if(intent.getAction().equals(netACTION)){
    //Intent中ConnectivityManager.EXTRA_NO_CONNECTIVITY这个关键字表示着当前是否连接上了网络
    //true 代表网络断开   false 代表网络没有断开
            if(intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false)){
                aActivity.stopFlag = true;
            }else{
                aActivity.stopFlag = false;
            }
        }
    }
}

aActivity.stopFlag 是一个static布尔值  可以出现在程序需要判断网络情况的地方。

2顺便加一个不需要broadcastReceiver就可以查看网络的例子。

这个方法可以放在需要检查网络通讯情况的地方。返回值为true代表网络畅通。

 

private boolean checkNetwork() {

 

       ConnectivityManager conn = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

 

       NetworkInfo net = conn.getActiveNetworkInfo();

 

       if (net != null && net.isConnected()) {

以下的这个判断可以使用户在失去网络链接的情况下,自动跳转到设置无线网界面。

 

           Toast.makeText(this, R.string.lose_network, Toast.LENGTH_LONG).show();

 

           Intent intent = new Intent("android.settings.WIRELESS_SETTINGS");