您的位置:首页 > 理论基础 > 计算机网络

android监听网络状态变化

2018-03-18 20:48 465 查看

权限

uses-permission android:name=”android.permission.ACCESS_NETWORK_STATE”

uses-permission android:name=”android.permission.INTERNET”

网络状态的Receive重点内容**

package com.bawei.com.duanwan.receiver;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

import android.net.ConnectivityManager;

import android.widget.Toast;

import com.bawei.com.duanwan.netstate.NetEvent;

import com.bawei.com.duanwan.network.NetUtils;

import de.greenrobot.event.EventBus;

/**

* @Description:网络状态的Receive

* @author http://blog.csdn.net/finddreams

*/

public class NetReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (ConnectivityManager.CONNECTIVITY_ACTION.equals(action)) {
boolean isConnected = NetUtils.isNetworkConnected(context);
System.out.println("网络状态:" + isConnected);
System.out.println("wifi状态:" + NetUtils.isWifiConnected(context));
System.out.println("移动网络状态:" + NetUtils.isMobileConnected(context));
System.out.println("网络连接类型:" + NetUtils.getConnectedType(context));
if (isConnected) {
Toast.makeText(context, action+"已经连接网络", Toast.LENGTH_LONG).show();
EventBus.getDefault().post(new NetEvent(true));
} else {
EventBus.getDefault().post(new NetEvent(false));
Toast.makeText(context, "已经断开网络", Toast.LENGTH_LONG).show();
}
}
}


}

//建一个网络连接状态类## 标题 ##

package com.bawei.com.duanwan.network;

import android.content.Context;

import android.content.Intent;

import android.net.ConnectivityManager;

import android.net.NetworkInfo;

import android.os.Build;

public class NetUtils {

// 判断网络连接状态
public static boolean isNetworkConnected(Context context) {
if (context != null) {
ConnectivityManager mConnectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mNetworkInfo = mConnectivityManager
.getActiveNetworkInfo();
if (mNetworkInfo != null) {
return mNetworkInfo.isAvailable();
}
}
return false;
}

// 判断wifi状态
public static boolean isWifiConnected(Context context) {
if (context != null) {
ConnectivityManager mConnectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mWiFiNetworkInfo = mConnectivityManager
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (mWiFiNetworkInfo != null) {
return mWiFiNetworkInfo.isAvailable();
}
}
return false;
}

// 判断移动网络
public static boolean isMobileConnected(Context context) {
if (context != null) {
ConnectivityManager mConnectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mMobileNetworkInfo = mConnectivityManager
.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (mMobileNetworkInfo != null) {
return mMobileNetworkInfo.isAvailable();
}
}
return false;
}

// 获取连接类型
public static int getConnectedType(Context context) {
if (context != null) {
ConnectivityManager mConnectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mNetworkInfo = mConnectivityManager
.getActiveNetworkInfo();
if (mNetworkInfo != null && mNetworkInfo.isAvailable()) {
return mNetworkInfo.getType();
}
}
return -1;
}
/**
* 设置网络
* @param paramContext
*/
public static void startToSettings(Context paramContext) {
if (paramContext == null)
return;
try {
if (Build.VERSION.SDK_INT > 10) {
paramContext.startActivity(new Intent(
"android.settings.SETTINGS"));
return;
}
} catch (Exception localException) {
localException.printStackTrace();
return;
}
paramContext.startActivity(new Intent(
"android.settings.WIRELESS_SETTINGS"));
}


}

**

用于网络的事件重点内容

**

package com.bawei.com.duanwan.netstate;

/**

* @Description:用于网络的事件

* @author http://blog.csdn.net/finddreams

*/

public class NetEvent {

public boolean isNet;

public NetEvent(boolean isNet) {

this.isNet = isNet;
}

public boolean isNet() {
return isNet;
}


}

**

//MainActivity

**

package com.bawei.com.duanwan;

import android.content.IntentFilter;

import android.net.ConnectivityManager;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import com.bawei.com.duanwan.receiver.NetReceiver;

import de.greenrobot.event.EventBus;

public class MainActivity extends AppCompatActivity {

private NetReceiver mReceiver;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initReceive();

}

private void initReceive() {
mReceiver = new NetReceiver();
IntentFilter mFilter = new IntentFilter();
mFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(mReceiver, mFilter);
}

@Override
protected void onDestroy() {
unregisterReceiver(mReceiver);
EventBus.getDefault().unregister(this);
super.onDestroy();
}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  网络 android