问题描述
在Android 10上,我正在使用以下方法连接到我的Wifi接入点:
@RequiresApi(api = Build.VERSION_CODES.Q)
public static void connectToWifiAccesspoint(String AP_SSID,String AP_PASSWORD,ConnectivityManager connectivityManager) {
WifiNetworkSpecifier.Builder builder = null;
builder = new WifiNetworkSpecifier.Builder();
builder.setSsid(AP_SSID);
builder.setWpa2Passphrase(AP_PASSWORD);
WifiNetworkSpecifier wifiNetworkSpecifier = builder.build();
NetworkRequest.Builder networkRequestBuilder = new NetworkRequest.Builder();
networkRequestBuilder.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
networkRequestBuilder.setNetworkSpecifier(wifiNetworkSpecifier);
NetworkRequest networkRequest = networkRequestBuilder.build();
connectivityManager.requestNetwork(networkRequest,new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(@NonNull Network network) {
super.onAvailable(network);
connectivityManager.bindProcesstoNetwork(network);
}
});
}
点击连接按钮后,几秒钟后会出现相同的弹出窗口, 智能手机仍未连接到接入点。
请问如何解决此问题?
解决方法
几天前,我在Andrdoid Q上进行wifi连接,这是我在stackOverflow中提出的问题的link。
因此,解决方案是使用targetSdkVersion 28编译您的应用。 要连接到wifi,请使用以下功能:
public void connectToWifi(String ssid,String key) {
Log.e(TAG,"connection wifi pre Q");
WifiConfiguration wifiConfig = new WifiConfiguration();
wifiConfig.SSID = "\"" + ssid + "\"";
wifiConfig.preSharedKey = "\"" + key + "\"";
int netId = wifiManager.addNetwork(wifiConfig);
if (netId == -1) netId = getExistingNetworkId(wifiConfig.SSID);
wifiManager.disconnect();
wifiManager.enableNetwork(netId,true);
wifiManager.reconnect();
}