gpt4 book ai didi

Android 检查是否有WiFi但没有网络

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:56:10 26 4
gpt4 key购买 nike

我正在编写一个程序,我需要检查三种状态:1. 如果我没有 WiFi,2. 如果我有 WiFi 但没有互联网连接(比如我打开路由器但拔下以太网电缆),以及3. 如果我有 WiFi 和互联网连接。然后我会更改应用程序中图标的颜色以表示这些状态之一(红色、黄色或绿色)。目前情况 2 不工作,每当我拔下路由器上的电缆进行测试时,图标颜色从绿色变为红色。

public static void doPing(Context context) {

String googleUrl = "https://www.google.com";
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

try {
HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, TIMEOUT_CONNECTION);

HttpConnectionParams.setSoTimeout(httpParameters, TIMEOUT_SOCKET);

HttpClient client = new DefaultHttpClient(httpParameters);
if (L) Log.i(TAG, "Calling: " + url );
HttpGet getGoogle = getHttpGet(googleUrl);
HttpResponse responseGoogle = client.execute(getGoogle);

if (responseGoogle != null){
connectionIconView.setIcon(R.drawable.green_wifi);
}
else if (cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI) != null){
connectionIconView.setIcon(R.drawable.yellow_wifi);
}
else {
connectionIconView.setIcon(R.drawable.red_wifi);
}

} catch(Exception e) {
if (L) Log.e(TAG, "Error during HTTP call");
e.printStackTrace();
}

最佳答案

这样检查wifi是否可用

功能一

private boolean isWifiAvailable() {
ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

return wifi.isConnected();
}

之后,检查网络是否可用

功能二

 public static boolean isInternetAccessible(Context context) {
if (isWifiAvailable()) {
try {
HttpURLConnection urlc = (HttpURLConnection) (new URL("http://www.google.com").openConnection());
urlc.setRequestProperty("User-Agent", "Test");
urlc.setRequestProperty("Connection", "close");
urlc.setConnectTimeout(1500);
urlc.connect();
return (urlc.getResponseCode() == 200);
} catch (IOException e) {
Log.e(LOG_TAG, "Couldn't check internet connection", e);
}
} else {
Log.d(LOG_TAG, "Internet not available!");
}
return false;
}

条件

  1. 如果函数 1 返回 false --> 将颜色更改为红色
  2. 如果 function 1 返回 true 而 function 2 返回 false --> 将颜色更改为黄色
  3. 如果两个函数都返回 true --> 将颜色更改为绿色

关于Android 检查是否有WiFi但没有网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27988103/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com