gpt4 book ai didi

ANDROID:如果 WiFi 已启用且处于 Activity 状态,则启动 Intent

转载 作者:IT老高 更新时间:2023-10-28 23:39:38 26 4
gpt4 key购买 nike

这就是我想做的:

=> 如果 WiFi 已启用且处于 Activity 状态,则启动一个 Intent (实际上它是一个获取其内容的 WebView=>我的应用在网络上的说明)

=> 如果不是,那么我将启动另一个 Intent ,这样我就不会显示带有“网页不可用...http://www.mywebsite.com 的网页可能暂时关闭或可能已移动.. 。”

我最初坚持使用

如果(wifi.isWifiEnabled())

但这并不能说明 Wifi 连接是否处于 Activity 状态。它只说用户打开了开关。设备可能已连接,也可能未连接...这是正确的吗?

然后我尝试使用:

如果 (wifi.getConnectionInfo().getSSID()!= null)

但我注意到即使连接已丢失或已禁用,它也会返回一个字符串...?

那我该怎么办呢?

wifi = (WifiManager)getSystemService(Context.WIFI_SERVICE);
Intent intent_instructions;

if (wifi.getConnectionInfo().getSSID()!= null){
Log.i("Hub", "WiFi is enabled AND active !");
Log.i("Hub", "SSID = "+wifi.getConnectionInfo().getSSID());
intent_instructions = new Intent(this, Instructions.class);
}else{
Log.i("Hub", "NO WiFi");
intent_instructions = new Intent(this, Instructions_No_WiFi.class);
}
this.startActivity(intent_instructions);

在启动 Intent 之前是否有更通用的方法来测试设备是否已连接到互联网?无论是通过 Wifi、3G 等...

提前感谢您的帮助。

最佳答案

您可以使用以下代码检查连接性:

private static boolean isConnected(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = null;
if (connectivityManager != null) {
networkInfo =
connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
}
return networkInfo == null ? false : networkInfo.isConnected();
}

请确保您已在 Manifest 中注册了 android.net.conn.CONNECTIVITY_CHANGE Intent,否则您将永远不会收到在线通知。

过去几天我一直在努力解决这个问题,我现在才意识到我需要注册 CONNECTIVITY_CHANGE 而不仅仅是 WIFI_STATE_CHANGED。

关于ANDROID:如果 WiFi 已启用且处于 Activity 状态,则启动 Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1811852/

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