如何在android中检查网络是不是连接到wifi [重复]
Posted
技术标签:
【中文标题】如何在android中检查网络是不是连接到wifi [重复]【英文标题】:how to check a network is connected to wifi in android [duplicate]如何在android中检查网络是否连接到wifi [重复] 【发布时间】:2013-04-06 10:23:29 【问题描述】:现在我正在开发一个应用程序。我使用 ConnectivManager 检查了 android 中的互联网连接。我检查了 Mobile 3g 和 WIFI。我关闭了 WIFI 连接并检查了它是否可以正常工作。然后我打开WIFI连接,但断开了WIFI中的所有网络。现在我检查但它显示WIFI已连接但我想检查WIFI打开时网络是否连接到WIFI或WIFI打开时未连接到WIFI。我不知道如何编码。任何人都可以帮助提供所需的代码吗?
提前致谢
【问题讨论】:
您的问题似乎已经得到解答-***.com/questions/3841317/… 这是我在另一篇文章中的回答:***.com/a/8548926/220710 【参考方案1】:public boolean isWifiEnabled()
ConnectivityManager cm = (ConnectivityManager) c.getSystemService(
Context.CONNECTIVITY_SERVICE);
NetworkInfo wifiNetwork = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (wifiNetwork != null && wifiNetwork.isConnected())
return true;
return false;
别忘了使用以下权限
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" >
</uses-permission>
【讨论】:
其实这个是用来检查WIFI是否连接的,但是我想要的是检查是否有WIFI网络连接到WIFI 没有。我检查了WIFI是否已连接。我打开了 WIFI 连接。但我禁用了所有 wifi 网络。现在我想检查WIFI是否连接?如果已连接,则必须检查是否连接了任何 WIFI 网络? 先用我的方法检查wifi是否连接。然后检查网络连接。如果网络不可用,则 wifi 网络未启用..(或者我可能误解了您的查询) 实际上我拥有三个已配置的 WIFI 网络。我打开了 WIFI 连接,但禁用了所有这三个网络。现在我需要编写代码来显示“未连接网络的 WIFI 连接”【参考方案2】:检查互联网是否通过 WiFi 或手机连接
public static boolean hasInternet(Activity a)
boolean hasConnectedWifi = false;
boolean hasConnectedMobile = false;
ConnectivityManager cm = (ConnectivityManager) a.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] netInfo = cm.getAllNetworkInfo();
for (NetworkInfo ni : netInfo)
if (ni.getTypeName().equalsIgnoreCase("wifi"))
if (ni.isConnected())
hasConnectedWifi = true;
if (ni.getTypeName().equalsIgnoreCase("mobile"))
if (ni.isConnected())
hasConnectedMobile = true;
return hasConnectedWifi || hasConnectedMobile;
【讨论】:
【参考方案3】:通过这段代码,您应该能够使用 ConnectivityManager。从那里您可以检查它是否已连接甚至可用。
ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (mWifi.isConnected())
// Do whatever
【讨论】:
【参考方案4】:检查网络连接
public class CheckNetwork
private static final String TAG = CheckNetwork.class.getSimpleName();
public static boolean isInternetAvailable(Context context)
NetworkInfo info = (NetworkInfo) ((ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
if (info == null)
Log.d(TAG,"no internet connection");
return false;
else
if(info.isConnected())
Log.d(TAG," internet connection available...");
return true;
else
Log.d(TAG," internet connection");
return true;
在你的活动中
if(Checknetwork.isInternetAvailable(MainActivity.this)
// do something
记得在清单文件中添加权限
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
这还会检查您是否连接到移动网络或 wifi。
【讨论】:
以上是关于如何在android中检查网络是不是连接到wifi [重复]的主要内容,如果未能解决你的问题,请参考以下文章
设备在Android中连接到WiFi时如何获取蜂窝网络的IP地址
在 android 上使用 pyjnius 连接到 wifi 网络
Swift:检查iOS是不是在没有互联网的情况下连接到wifi