Это не будет работать (по крайней мере 5 лет спустя), потому что PhoneFactory.makeDefaultPhone () должен быть вызван раньше, чем PhoneFactory.getDefaultPhone ()

ли способ вернуть значение настройки мобильной сети Android для «использовать только сети 2G»?

Разрабатываемое приложение измеряет скорость интернета в определенном месте, но для того, чтобы это было актуально, оно должно знать, намеренно ли пользователь ограничивает мобильный интернет до 2G.

Я взглянул на ConnectivityManager, но он предоставляет только информацию о фоновых настройках данных или всех сетях. Итерация по ним показывает, что, несмотря на то, что настройка включена, HSPA и UMTS возвращаютtrue заisAvailable():

for (NetworkInfo netInfo : cm.getAllNetworkInfo()) {
    Log.i(TAG, netInfo.getSubtypeName() + ": " + netInfo.isAvailable());
}

Единственный совет, который я нашел среди всего этого, это то, чтоnetInfo.getReason() возвращает «connectionDisabled» на HSPA и UMTS, когда настройка включена. Проблема в том, что когда настройка отключена, эти типы сетей вообще не обязательно появляются в списке. Мне кажется неправильным использовать сравнение строк специально для HSPA и UMTS для «connectionDisabled».

Как правильно решить эту проблему?

Ответы на вопрос(2)

Ваш ответ на вопрос