gpt4 book ai didi

将 EAP 与 PEAP 结合使用时,Android 身份验证会陷入僵局

转载 作者:行者123 更新时间:2023-11-29 02:14:36 27 4
gpt4 key购买 nike

我花了好几天时间试图找出我的安卓手机在学校的 wifi 出了什么问题。学校 wifi 是使用 PEAP 的 802.1x EAP。需要用户名和密码。

我有两部 Android 手机,并且在它们上面运行了许多不同的 ROM,所以我知道这不仅仅是 ROM 特定的问题。我目前在 Mytouch 3g fender ed 上运行 2.2.1。我的手机没有数据计划,所以我关闭了数据。我只使用 wifi。

我遇到的问题是,在我连接到 wifi 后,有一段时间一切正常,但很快(可能 15 分钟到一个小时后),我会打开手机,当我看到 wifi 连接时,它说 Authenticating 并且一直卡在那里直到我重置它。如果我尝试使用普通 HTTP 上网,它工作正常,但如果我尝试运行任何需要 wifi 连接的应用程序,他们会给出一个错误,说有网络连接(例如谷歌语音搜索会说“连接问题”)。 Feeds 无法更新,gmail 无法更新等。重置连接后,wifi 再次正常工作。我不确定为什么会这样。我认为这与学校的 wifi 设置方式有关。

但是,为了快速解决该问题,我正在编写一个应用程序来测试连接是否正在验证,如果是则重新关联连接。不过我遇到了问题。

这是查看 wifi 是否正在验证的代码以及一些调试输出:

private void checkWifi() {

WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo info = wifi.getConnectionInfo();

SupplicantState state = info.getSupplicantState();
Log.d(getClass().getSimpleName(), state.toString());

NetworkInfo.DetailedState state2 = WifiInfo.getDetailedStateOf(info.getSupplicantState());
Log.d(getClass().getSimpleName(), state2.toString());
}

这是日志输出:

D/WifiCheckerService(24732): COMPLETED
D/WifiCheckerService(24732): OBTAINING_IPADDR

无论手机上的 wifi 显示已连接还是正在验证,日志输出都是相同的,这意味着我的程序现在无法区分它是否处于时髦的“身份验证”状态。我需要能够区分以便能够知道何时重置 wifi。非常感谢任何帮助。

最佳答案

试试这个。

ConnectivityManager conn = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo nInfo = conn.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

Log.d("MY CONNECTIVITY MANAGER: NETWORK.DETAILEDSTATE", nInfo.getDetailedState().toString());

Log.d("MY CONNECTIVITY MANAGER: NETWORK.STATE", nInfo.getState().toString());

这是我的输出(如果您在连接时输入了错误的密码)。

D/MY CONNECTIVITY MANAGER: NETWORK.DETAILEDSTATE(24732): AUTHENTICATING D/MY CONNECTIVITY MANAGER: NETWORK.STATE(24732): CONNECTING

第二个输出(在获取 IP 时)。

D/MY CONNECTIVITY MANAGER: NETWORK.DETAILEDSTATE(24732): OBTAINING_IPADDR
D/MY CONNECTIVITY MANAGER: NETWORK.STATE(24732): CONNECTED

第三个输出(成功连接)。

D/MY CONNECTIVITY MANAGER: NETWORK.DETAILEDSTATE(24732): CONNECTED
D/MY CONNECTIVITY MANAGER: NETWORK.STATE(24732): CONNECTED

第四次输出(如果您输入了错误的密码并且无法连接)。

D/MY CONNECTIVITY MANAGER: NETWORK.DETAILEDSTATE(24732): DISCONNECTED
D/MY CONNECTIVITY MANAGER: NETWORK.STATE(24732): DISCONNECTED

第 5 个输出(如果 WIFI 处于空闲状态且已断开连接)。

D/MY CONNECTIVITY MANAGER: NETWORK.DETAILEDSTATE(24732): IDLE
D/MY CONNECTIVITY MANAGER: NETWORK.STATE(24732): DISCONNECTED

//希望对你有帮助

关于将 EAP 与 PEAP 结合使用时,Android 身份验证会陷入僵局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5053068/

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