2
在我的應用程序中,我連接到具有自己的WiFi網絡的設備。 在Android 6及以上版本中,系統在幾秒後詢問我是否想連接到該網絡,即使沒有互聯網連接。 只有在批准該消息後,我才能連接到我的設備。 我嘗試以編程方式連接到網絡,並且不強制用戶每次都進入他的設置並進行手動連接。我用下面的代碼連接到設備網絡:使用無WiFi連接的WiFi
private void connectToWiFi(WifiManager wifiManager, String wifiName) {
WifiConfiguration configuration = new WifiConfiguration();
configuration.SSID = "\"" + wifiName + "\"";
configuration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
wifiManager.addNetwork(configuration);
List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
for (WifiConfiguration i : list) {
if (i.SSID != null && i.SSID.equals("\"" + wifiName + "\"")) {
wifiManager.disconnect();
wifiManager.enableNetwork(i.networkId, true);
wifiManager.reconnect();
break;
}
}
}
,並試圖迫使該應用使用WiFi連接,而不是蜂窩數據我使用:
NetworkRequest.Builder builder;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
builder = new NetworkRequest.Builder();
builder.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
connectivityManager.requestNetwork(builder.build(), new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(Network network) {
String ssid = wifiManager.getConnectionInfo().getSSID();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
connectivityManager.bindProcessToNetwork(null);
if (ssid.equals("\"" + Prefs.getWifiName(PUFMainActivity.this) + "\"")) {
connectivityManager.bindProcessToNetwork(network);
connectivityManager.unregisterNetworkCallback(this);
}
}
}
});
}
雖然只要當蜂窩數據處於活動狀態時,設備不能連接。如果我禁用了蜂窩數據,那麼它工作正常。 我需要知道是否有辦法以編程方式做我想要的東西,而不告訴用戶禁用他的蜂窩數據。
由於
嗨@YYJO你有這個問題的答案嗎? –
@KenRatanachaiS。不幸的是,據我可以告訴它只是不適用於Android。 – YYJo