问题描述
长话短说,当我将前缀添加到我的代码时,我一直试图让具有 WPA 安全性的 Wifi 网络显示出来。我可以显示开放网络,但不能显示带有 WPA2/WPA3 的 wifi 网络。我错过了什么吗?谢谢!
上下文:尝试通过 WiFi 连接到设备,设备需要 WPA2 密码且其 WiFi 网络未显示。
WifiEnterpriseConfig wifiEnterpriseConfig = new WifiEnterpriseConfig();
final NetworkSpecifier specifier =
new WifiNetworkSpecifier.Builder()
.setSsidPattern(new PatternMatcher("test",PatternMatcher.PATTERN_PREFIX))
.setWpa2EnterpriseConfig(wifiEnterpriseConfig)
.build();
final NetworkRequest request =
new NetworkRequest.Builder()
.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
.setNetworkSpecifier(specifier)
.removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
.build();
final ConnectivityManager connectivityManager = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
final ConnectivityManager.NetworkCallback networkCallback = new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(@NonNull Network network) {
super.onAvailable(network);
Log.e("wifi","Available: "+network);
if(getWifiConnectedListener() != null && !Thread.interrupted()) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
connectivityManager.bindProcesstoNetwork(network);
}
else {
ConnectivityManager.setProcessDefaultNetwork(network);
}
}
connectivityManager.unregisterNetworkCallback(this);
}
@Override
public void onLost(@NonNull Network network) {
super.onLost(network);
Log.e("wifi","Lost: "+network);
}
@Override
public void onUnavailable() {
super.onUnavailable();
Log.e("wifi","Unavailable");
}
};
connectivityManager.requestNetwork(request,networkCallback);
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)