gpt4 book ai didi

Android - Wifimanager 处理 wifi 连接状态

转载 作者:行者123 更新时间:2023-12-02 15:29:57 25 4
gpt4 key购买 nike

我有一个应用程序,它可以通过编程方式将自身连接到 wifi 连接。我的问题是,我想处理密码错误的情况。我想在运行时检测密码不正确。准确地说,我在建立连接时运行了一个进度对话框,因此如果密码错误,进度对话框就会一直显示并且无法跳过。进一步说明:我使用以下代码处理了少于 8 个字符的密码:

if(!m_wifiManager.enableNetwork(netId, true)) {
progressDialogConnecting.dismiss();
createInfoMessageDialog(CONST.WIFI_CON_FAILED_TITLE, CONST.WIFI_CON_FAILED_MSG_CONFAILURE);
m_wifiManager.reconnect();
return;
}

如果 wifi 连接的 key 少于 8 个字符,则会触发此 if-case。但如果它超过 8 个字符并且错误,我就会陷入显示进度对话框的无尽状态。我到底想问的是:我该如何处理 1. 密码错误 2. 连接状态(就像 Android 系统向我显示“已连接到 Wifi xyz”的 toast 一样)?甚至可以处理第一个(密码错误)吗?

这是代码,对于处理连接建立事件不起作用(这只是 wifirecevier,我也在 Activity 中注册了它):

 public class WifiReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if (action.equals(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION)) {
if (intent.getBooleanExtra(WifiManager.EXTRA_SUPPLICANT_CONNECTED, false)){
if(wrongNetworkConnected)
progressDialogConnecting.dismiss();
}
}
} else {

}
}
}
}

编辑:我目前正在做的是,我有一个处理程序,它告诉我我连接到谁。这很有用,因为我可以说在 reconnect() 之后我重新连接到旧网络(当前网络)而不是新网络 - 所以显然密码可能是错误的(或其他东西),因为我无法连接到新网络网络。

这种方法的问题是,首先花费太多时间,其次不可靠。我可以撒谎说,如果您能够重新连接到当前的网络,那是因为密码错误,但实际上并不能 100% 确定您因此无法重新连接 - 也可能有其他原因。所以我仍在寻找来自请求者的简单反馈/处理密码错误,就像android api在每个android设备的wifi设置中所做的那样......

最佳答案

My problem is, I want to handle the case, that the password is wrong.

经过一番研究,我发现了这个 post这没有标记为已回答,但它仍然对我很有用。

这里是 if-case,如果存在身份验证错误,程序就会跳转(我已经测试了几次)--> 例如密码错误:

int supl_error=intent.getIntExtra(WifiManager.EXTRA_SUPPLICANT_ERROR, -1);

if(supl_error==WifiManager.ERROR_AUTHENTICATING){
// DO SOMETHING
}

注意:如上面的链接文章所示,此 if-case 应该出现在 BroadcastReceiver 中,将 Intent WifiManager.SUPPLICANT_STATE_CHANGED_ACTION 添加到您的 Activity 类中的接收者注册。

关于Android - Wifimanager 处理 wifi 连接状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45673369/

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