У меня есть приложение, которое я хочу использовать для получения отчета о статусе соединения из удаленного запроса.
Я хочу знать, подключен ли WiFi, и если доступ к данным разрешен по мобильной сети.
Если WiFi выходит за пределы диапазона, я хочу знать, могу ли я полагаться на мобильную сеть.
Проблема в том, что включенная информация всегда возвращается как истина, когда я подключен WiFi, и я могу только правильно запросить мобильную сеть, если она не подключена WiFi.
все ответы, которые я видел, предлагают опрос, чтобы узнать, что такое текущее соединение, но я хочу знать, доступна ли мобильная сеть, если он мне понадобится, хотя я мог бы быть подключен WiFi в данный момент.
Есть ли способ сообщить, разрешены ли данные мобильной сети без опроса, чтобы увидеть, подключен ли он?
ИЗМЕНИТЬ
Итак, когда подключен WiFi. Если я перейду к настройкам и отмените выбор "Data Enabled", а затем в моем приложении, я сделаю следующее:
boolean mob_avail =
conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isAvailable();
mob_avail возвращается как "истина", но у меня отключены данные Mobile Network, поэтому я ожидаю, что это будет "false"
Если отключить Wi-Fi, есть (по праву) отсутствие соединения, поскольку я отключил данные мобильной сети.
так как проверить, разрешены ли данные мобильной сети, когда я подключен WiFi?
UPDATE
Я взглянул на getAllNetworkInfo(), как это было предложено в комментариях ss1271
Я вывел возвращаемую информацию о мобильной сети в следующих трех условиях
Wi-Fi отключен - данные для мобильных устройств
Отключено WiFi - отключено.
Информация о беспроводных соединениях WiFi на
и получили следующие результаты:
С отключенным WiFi:
мобильный [HSUPA], состояние: CONNECTED/CONNECTED, причина: неизвестно, дополнительно: Интернет, роуминг: false, failover: false, isAvailable: true, featureId: -1, userDefault: false
С включенным WiFi/ВКЛ.
NetworkInfo: type: mobile [HSUPA], состояние: ОТКЛЮЧЕНО/ОТКЛЮЧЕНО, причина: connectionDisabled, дополнительно: (none), роуминг: false, failover: false, isAvailable: true, featureId: -1, userDefault: ложь
С включенным WiFi/ВКЛ.
NetworkInfo: type: mobile [HSPA], состояние: ОТКЛЮЧЕНО/ОТКЛЮЧЕНО, причина: connectionDisabled, дополнительно: (none), роуминг: false, failover: false, isAvailable: true, featureId: -1, userDefault: ложь
Таким образом, вы можете видеть, что isAvailable возвращает true каждый раз, и состояние отображается только как отключенное, когда WiFi влияет.
РАЗЪЯСНЕНИЕ
Я НЕ, чтобы посмотреть, подключен ли мой телефон к мобильной сети. я AM, пытающийся установить, включен ли пользователь/отключил доступ к данным через мобильную сеть. Они могут включать и выключать это, перейдя в Настройки → Параметры беспроводной сети и сети → Настройки мобильной сети → Данные включены