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) он говорит мне, что сеть отключена (и я попытался опросить, есть ли некоторая задержка в обновлении информации о сети, но безуспешно).

Не уверен, что я мог делать неправильно здесь. Благодарю.

0 ответов

Другие вопросы по тегам