gpt4 book ai didi

java - 处理应用程序内 WiFi 状态的定期检查

转载 作者:行者123 更新时间:2023-12-02 11:11:28 26 4
gpt4 key购买 nike

Android 应用程序编程新手,我遇到了一个很难在 Android Studio 中编写代码的场景。

我的应用程序要求用户连接到特定的 Wifi。因此,我想定期检查 Wifi 状态,如果未连接/连接到错误的 Wifi,我想抛出一个 AlertDialog 直到用户连接到正确的 Wifi。

但是,我在实现方面遇到了困难。到目前为止,我的方法是使用一个方法 checkWifi() 来测试我们是否使用正确的 Wifi,并相应地设置一个全局 boolean 值 onCorrectWifi。此 checkWifi() 通过 TimerTask 每 30 秒定期运行一次。

在与 checkWifi() 方法相同的 TimerTask 中,有另一个名为 handleWifiStatus() 的方法。 handleWifiStatus() 方法查看 onCorrectWifi,如果它为 True,则不执行任何操作。如果 onCorrectWifi 为 False,handleWifiStatus() 会生成一个 AlertDialog,然后进入 while 循环。 while 循环重复调用 checkWifi() 直到 onCorrectWifi 再次为 True,此时退出 while 循环,并关闭 AlertDialog,并恢复通常的应用 Activity 。

我正在努力解决这个问题。

我是不是把这件事搞得太复杂了?是否有更好/更简单的实现来实现整个“检查 Wifi 状态,如果错误,显示 AlertDialog 直到 Wifi 再次良好”的概念?

最佳答案

乍一看,您的方法似乎很合理,所以我不太确定出了什么问题。话虽这么说,Android 实际上具有在网络状态发生变化时收到通知的功能,以简化这种情况。

// Retrieve the ConnectivityManager via the current Context
ConnectivityManager cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);

// Create the method to be called when the WiFi network changes
ConnectivityManager.NetworkCallback callback = new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(Network network) {
// Check that this Network is the correct one and take
// action as appropriate
}
};

// Set the callback to be fired when WiFi status changes
cm.registerNetworkCallback(
new NetworkRequest.Builder()
.addTransportType(TRANSPORT_WIFI)
.build(),
callback
);

关于java - 处理应用程序内 WiFi 状态的定期检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50593892/

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