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 判定网络连接状态 以及监听网络链接状态的变化
- Android:检测网络状态&监听网络变化探究
- android 使用广播监听网络状态变化
- Android监听网络状态变化,随着网络的变化做一些其他处理
- 【Android 】注册广播,实时监听网络连接与断开状态变化
- Android开发之使用广播监听网络状态变化
- android动态注册广播,监听网络状态变化,判断网络模式
- Android解决使用广播监听网络状态变化时接收到多个广播的问题
- Android监听网络状态变化与WIFI移动网的判别
- Android 通过注册广播,实时监听网络连接与断开状态的变化
- Android 实时监测(监听)网络连接状态变化
- Android 监听网络状态的变化
- android 监听网络状态的变化及实际应用
- 笔记 android 监听网络状态变化-------广播
- android 监听网络状态的变化及实战
- Android网络状态的检测和监听网络状态的变化
- 简单 android 广播监听网络状态变化
- Android 实时监测(监听)网络连接状态变化
- Android开发动态的监听网络状态的变化
- Android监听网络状态的变化及实战