Я занимаюсь разработкой тестового приложения, которое должно иметь возможность выбирать WiFi или Mobile для передачи данных.В следующем коде показано, что сети Wi-Fi и Mobile подключены, но bindProcessToNetwork () не работает в сети Mobile.
public class MyActivity extends AppCompatActivity {
private ConnectivityManager mConnMgr = null;
private Network mNetworkWiFi = null;
private Network mNetworkMobile = null;
mConnMgr = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
boolean isWifiConn = false;
boolean isMobileConn = false;
for (Network network : mConnMgr.getAllNetworks()) {
NetworkInfo networkInfo = mConnMgr.getNetworkInfo(network);
if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
isWifiConn = networkInfo.isConnected();
mNetworkWiFi = network;
}
if (networkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
isMobileConn = networkInfo.isConnected();
mNetworkMobile = network;
}
}
if (mNetworkMobile && mConnMgr.getNetworkInfo(mNetworkMobile).isConnected()) {
if (true != mConnMgr.bindProcessToNetwork(mNetworkMobile)) {
Log.i(TAG, "Failed to bind to Mobile");
}
}
Вопросы: 1. Является ли bindProcessToNetwork () правильным способом выбора службы данных между WiFi и Mobile?2. Что могло вызвать сбой bindProcessToNetwork () в подключенной мобильной сети?