Android中监听网络连接问题

本文介绍如何在Android应用中通过广播接收器监听网络连接状态的变化,包括移动数据和Wi-Fi连接的状态变更,并提供了具体的实现代码。

可以使用广播监听网络的改变

AndroidManifest.xml

         <receiver  
		    android:name="com.relonger.oufengliyuan.receiver.ConnectionChangeReceiver"  
		    android:label="NetworkConnection">   
		    <intent-filter>   
		        <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
		        <action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
                <action android:name="android.net.wifi.STATE_CHANGE" />
		    </intent-filter>  
		</receiver>  
ConnectionChangeReceiver.java
package com.relonger.oufengliyuan.receiver;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.widget.Toast;

//注册一个广播接收者,接收网络连接状态改变广播  
public class ConnectionChangeReceiver extends BroadcastReceiver {  
    @Override  
    public void onReceive(Context context, Intent intent) {  
        ConnectivityManager connectivityManager = (ConnectivityManager) context  
                .getSystemService(Context.CONNECTIVITY_SERVICE);  
        NetworkInfo activeNetInfo = connectivityManager  
                .getActiveNetworkInfo();  
        NetworkInfo mobNetInfo = connectivityManager  
                .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);  
        NetworkInfo mWiFiNetworkInfo = connectivityManager  
                .getNetworkInfo(ConnectivityManager.TYPE_WIFI);  
        
/*        if (!activeNetInfo.isConnected()) {  
            Toast.makeText(context,  
                    "Active Network Type : " + activeNetInfo.getTypeName(),  
                    Toast.LENGTH_SHORT).show();  
        }  
        if (!mobNetInfo.isConnected()) {  
            Toast.makeText(context,  
                    "Mobile Network Type : " + mobNetInfo.getTypeName(),  
                    Toast.LENGTH_SHORT).show();  
        }*/
        if (mWiFiNetworkInfo != null) {  
            if(!mWiFiNetworkInfo.isConnected()){
                  Toast.makeText(context,"WIFI未连接",Toast.LENGTH_SHORT).show();  
            }
        } 
    }  
}  

转载于:https://www.cnblogs.com/fengyu9/p/3611117.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值