Android判断网线连接
16lz
2021-01-23
前言
Android tv 上通常会判断当前网络是有线连接还是无线连接,那么可以通过 Android 的广播来通知网络连接状态。
源码
广播监听
import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.net.NetworkInfo;import android.net.ConnectivityManager;public class NetWorkReceiver extends BroadcastReceiver{ public int NET_ETHERNET = 1; public int NET_WIFI = 2; public int NET_NOCONNECT = 0; @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action.equals( ConnectivityManager.CONNECTIVITY_ACTION) || action.equals( "android.net.conn.CONNECTIVITY_CHANGE")) { switch (isNetworkAvailable(context)) { case 1: System.out.println("-----------networktest---------有线"); break; case 2: System.out.println("-----------networktest---------无线"); break; case 0: System.out.println("-----------networktest---------无网络"); break; default: break; } } private int isNetworkAvailable(Context context) { ConnectivityManager connectMgr = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo ethNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_ETHERNET); NetworkInfo wifiNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI); if (ethNetInfo != null && ethNetInfo.isConnected()) { return NET_ETHERNET; } else if (wifiNetInfo != null && wifiNetInfo.isConnected()) { return NET_WIFI; } else { return NET_NOCONNECT; } }}
静态注册广播
在 AndroidManifest.xml中注册广播
<receiver android:name=".WifiReceiver" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="android.net.wifi.STATE_CHANGE"/> <action android:name="android.Net.wifi.WIFI_STATE_CHANGED"/> <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/> intent-filter> receiver>
本文参考http://blog.csdn.net/nation_chen/article/details/15813639
更多相关文章
- Android 判断当前网络连接是否可用、打开设置网络界面
- Android 用AsyncTask下载网络图片并显示百分比
- Web后台和Android前端之间的网络通信
- Android网络操作
- Android 读取网络数据
- android webview无网络情况下的处理
- android客户端访问网络工具类
- android java 网络检测