gpt4 book ai didi

java - Android 如何判断 WPA key 是否不正确

转载 作者:行者123 更新时间:2023-12-01 12:50:23 35 4
gpt4 key购买 nike

因此,在我的应用程序中,我将连接到给定 SSID 和网络 key 的 WiFi 网络。它运行良好,如果使用广播接收器连接成功,用户会收到通知。现在我只需要能够告诉用户是否存在身份验证问题(即给定的 key 不正确)。我知道有一个 getSupplicantState() WifiInfo 类的方法,但它没有提供足够的 Supplicant State为了我所需要的。任何有关此事的帮助将不胜感激。

这是我当前的 Wifi 广播接收器 onReceive 方法;

@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager conMan = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = conMan.getActiveNetworkInfo();
if (netInfo != null && netInfo.getType() == ConnectivityManager.TYPE_WIFI) {
Log.d("WifiReceiver", "Have Wifi Connection");
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
String scannedSSID = sp.getString("SSID", "");

final WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
final WifiInfo connectionInfo = wifiManager.getConnectionInfo();

String SSID;
if (connectionInfo != null) {
SSID = connectionInfo.getSSID();
Log.d("WifiReceiver", "SSID is " + SSID);
Log.d("WifiReceiver", "Scanned SSID is " + scannedSSID);
String compScanned = "\"" + scannedSSID + "\"";
if (SSID.equalsIgnoreCase(compScanned)) {
Log.d("WifiReceiver", "Connected to " +scannedSSID);
Toast.makeText(context, "Connected to " + scannedSSID, Toast.LENGTH_LONG).show();
context.unregisterReceiver(this);
}
}

else
return;
}
else if (netInfo.isConnectedOrConnecting()) {
Toast.makeText(context, "Connecting...", Toast.LENGTH_LONG).show();
}

else
Log.d("WifiReceiver", "Don't have Wifi Connection");
}

最佳答案

一种选择是监视请求者状态的状态转换。例如,我注意到当我输入错误的 wifi 密码时,我的状态会从 FOUR_WAY_HANDSHAKE 转换为 DISCONNECTED。如果我看到这种转变,我会在屏幕上用身份验证错误标记网络。

关于java - Android 如何判断 WPA key 是否不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24263302/

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