gpt4 book ai didi

android - 我如何检测到无法在android中连接wifi?

转载 作者:太空宇宙 更新时间:2023-11-03 12:49:48 24 4
gpt4 key购买 nike

检测连接失败的最佳方法是什么?

我知道我们应该使用 NetworkInfo.getState() 来获取连接状态,我还使用带有 NETWORK_STATE_CHANGED_ACTION 的 BroadcastReceiver 来检测连接状态变化。

我认为在 broadcastReceiver 中检测 DISCONNECTED 状态在这种情况下不匹配。

NetworkInfo.State.DISCONNECTED 仅表示“断开连接”,并不表示连接失败。

最佳答案

使用 WifiManager.SUPPLICANT_STATE_CHANGED_ACTION 注册接收器,以便在发生连接失败时收到通知。这可能是因为提供了无效的 Wi-Fi 连接凭据。

private void registerReceiver() {
IntentFilter filter = new IntentFilter();
filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
filter.addAction(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION);
registerReceiver(mReceiver, filter);
}

下面是你的接收器

 private BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
NetworkInfo info = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
if (info != null) {
if (info.isConnected()) {
//connected
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
String ssid = wifiInfo.getSSID();
}
} else {
if (intent.getAction().equals(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION)) {
if (intent.hasExtra(WifiManager.EXTRA_SUPPLICANT_ERROR)) {
//failed to connect
}
}
}
};

关于android - 我如何检测到无法在android中连接wifi?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34036829/

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