ConnectivityManager.requestNetwork() не работает должным образом
Я пытаюсь временно заставить устройство использовать мобильные данные. я использую ConnectivityManager.requestNetwork()
,
NetworkRequest.Builder request = new NetworkRequest.Builder();
request.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);
request.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
connectivityManager.requestNetwork(request.build(), newRequestTransportCallback(connectivityManager),
(int) TimeUnit.SECONDS.toMillis(10));
куда newRequestTransportCallback()
возвращается,
new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(Network network) {
Log.d(TAG,"Network available: " + network + ", binding...");
if (cm.bindProcessToNetwork(network)) {
Log.d(TAG,"Bind successful to network: " + network);
} else {
Log.w(TAG,"Bind failed to network: " + network);
}
}
@Override
public void onUnavailable() {
Log.w(TAG,"Network not available");
}
};
Я могу видеть из своих записей в журнале, что запрос и привязка выполнены успешно. Тем не менее, когда я впоследствии позвоню ConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)
он говорит мне, что сеть отключена (и я попытался опросить, есть ли некоторая задержка в обновлении информации о сети, но безуспешно).
Не уверен, что я мог делать неправильно здесь. Благодарю.