我有一些无法访问互联网的 SSID,我正在尝试从 Android 应用程序以编程方式连接它。尽管没有互联网,但我应该使用该 SSID 进行一些 api 调用。下面一切正常安卓Q版本。 Android Q 版本存在一些问题。
我正在使用 Retrofit 进行 https 通信。
我使用 WifiNetworkSpecifier 和 wifi 管理器以编程方式连接到 SSID(无互联网)。
WifiNetworkSpecifier specifier = new WifiNetworkSpecifier.Builder()
.setSsid(ssid)
.setWpa2Passphrase(password)
.build();
NetworkRequest networkRequest = new NetworkRequest.Builder()
.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
.removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
.addCapability(NetworkCapabilities.NET_CAPABILITY_TRUSTED)
.setNetworkSpecifier(specifier)
.build();
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
ConnectivityManager.NetworkCallback networkCallback = new ConnectivityManager.NetworkCallback()
@Override
public void onAvailable(Network network) {
}
@Override
public void onUnavailable() {
super.onUnavailable();
}
@Override
public void onLost(Network network) {
}
};
connectivityManager.requestNetwork(networkRequest, networkCallback, 30000
);
我能够从我的代码成功连接到 wifi 网络。但每次我进行 SSID api 调用时,我都会得到“无法解析主机“URL”。没有与主机名关联的地址“问题在改造 onFailure()打回来。但有趣的是,如果我从手机设置应用程序连接 SSID,我不会看到未知主机异常,并且一切正常。
有人可以帮我吗,在 android Q 中以编程方式连接 SSID 与通过 android 设置连接有什么不同?为了解决这个问题我还需要改变什么?
你无法修复这个问题,这是Android 10中的一个错误,在issueTracker中打开了一个问题,谷歌表示它已修复,但他们没有分享解决方案。
谷歌真丢脸!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)