java - 您可以使用 WiFiNetworkSpecifier 连接到您的 Android 设备在 Android Q 上记住的 WPA 网络吗
问题描述
长话短说,当我将前缀添加到我的代码时,我一直试图让具有 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);
解决方案
推荐阅读
- javascript - 无法在 slack 上为使用 Microsoft Bot Framework 的机器人构建发送或接收消息
- json - Pandas 从嵌套的 json 中读取一个参数
- python - Why does uWSGI not reject requests when the listen queue should be full?
- javascript - 使用javascript从开始标记删除选定的html元素到结束标记的值
- ruby-on-rails - 如何在 Rails 应用程序中模拟 curl 请求?
- postgresql - 如何停止容器内的 postgresql 服务器?
- python - 将并行 slurm 作业与具有多个节点的 mpirun 结合使用
- c# - 二进制文字的 XML 序列化
- sql - 加速访问 2016 查询
- sql - SQL 查询 to_char BETWEEN 返回错误结果和正确结果