【发布时间】:2020-09-09 09:18:29
【问题描述】:
实际上一切都有效,只有一个例外。如果我们首先通过移动数据分配传输,那么一切正常,数据通过移动网络。然后我选择wifi数据,一切也都很好。但是如果之后再次选择移动数据,那么传输已经通过wifi了,为什么会这样?为什么第一次启动一切正常,再次打开wifi时,数据通过wifi,而不是通过移动通信?谁知道原因?先感谢您。代码如下。
public void setTransportType(int transportType) {
connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (networkCallback != null) {
connectivityManager.unregisterNetworkCallback(networkCallback);
networkCallback = null;
}
NetworkRequest.Builder request = new NetworkRequest.Builder();
if (transportType == TRANSPORT_TYPE_WIFI) {
request.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
} else {
request.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);
request.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
}
networkCallback = new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(Network network) {
super.onAvailable(network);
connectivityManager.bindProcessToNetwork(null);
connectivityManager.bindProcessToNetwork(network);
/*Operation after switching over*/
}
};
connectivityManager.requestNetwork(request.build(), networkCallback);
}
【问题讨论】:
标签: java android network-programming