安卓检测设备网络变化

NetWorkStateReceiver
package cn.edu.jlnu.checknetstate.receiver;

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

/**
 * Created by Administrator on 2017/1/11.
 */

public class NetWorkStateReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        //检测API是不是小于23
        if(android.os.Build.VERSION.SDK_INT< Build.VERSION_CODES.LOLLIPOP){
            //获取ConnectivityManager对象
            ConnectivityManager manager= (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            //获取ConnectivityManager对象对应的NetworkInfo对象
            //获取WIFI连接的信息
            NetworkInfo wifiNetInfo=manager.getNetworkInfo(manager.TYPE_WIFI);
            //获取移动数据连接的信息
            NetworkInfo mobileNetworkInfo=manager.getNetworkInfo(manager.TYPE_MOBILE);
            if(wifiNetInfo.isConnected()&&mobileNetworkInfo.isConnected()){
                Toast.makeText(context,"Wifi已经连接,移动数据已经连接",Toast.LENGTH_SHORT).show();
            }else if(wifiNetInfo.isConnected()&&!mobileNetworkInfo.isConnected()){
                Toast.makeText(context,"Wifi已经连接,移动数据已经断开",Toast.LENGTH_SHORT).show();
            }else if(!wifiNetInfo.isConnected()&&mobileNetworkInfo.isConnected()){
                Toast.makeText(context,"Wifi已经断开,移动数据已经连接",Toast.LENGTH_SHORT).show();
            }else{
                Toast.makeText(context,"Wifi已经断开,移动数据已经断开",Toast.LENGTH_SHORT).show();
            }

        }else{
            //获取ConnectivityManager对象
            ConnectivityManager manager= (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            //获取所有网络连接的信息
            Network[] networks=manager.getAllNetworks();
            //用于存放网络连接的信息
            StringBuilder sb=new StringBuilder();
            //通过循环将网络信息逐个读出来
            if(networks.length==0){
                Toast.makeText(context,"没有网络信息!",Toast.LENGTH_SHORT).show();
            }else{
                for(int i=0;i<networks.length;i++){
                    //获取ConnectivityManager对象对应的NetworkInfo对象
                    NetworkInfo networkInfo=manager.getNetworkInfo(networks[i]);
                    sb.append(networkInfo.getTypeName()+"connect is:"+networkInfo.isConnected());
                }
                Toast.makeText(context,sb.toString(),Toast.LENGTH_SHORT).show();
            }
        }
    }
}
注册注销
 @Override
    protected void onPause() {
        super.onPause();
        unregisterReceiver(mReceiver);
        Log.e("liuchen","注销");
    }

    //在OnResume方法注册
    @Override
    protected void onResume() {
        super.onResume();
        if(mReceiver==null){
            mReceiver=new NetWorkStateReceiver();
        }
        IntentFilter filter=new IntentFilter();
        filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
        registerReceiver(mReceiver,filter);
        Log.e("liuchen","注册");
    }
AndroidManifest.xml
<receiver android:name=".receiver.NetWorkStateReceiver">
            <intent-filter>
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </receiver>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值