Как определить, включена ли функция «Данные мобильной сети» (даже если она подключена через WiFi)?

У меня есть приложение, которое я хочу использовать для получения отчета о состоянии соединения из удаленного запроса.

Я хочу знать, подключен ли WiFi и включен ли доступ к данным через мобильную сеть.

Если WiFi выходит за пределы диапазона, я хочу знать, могу ли я положиться на мобильную сеть.

Проблема в том, что включенные данные всегда возвращаются как истинные, когда я подключен по WiFi, и я могу только правильно запрашивать мобильную сеть, когда не подключен по WiFi.

все ответы, которые я видел, предполагают опрос, чтобы увидеть текущее соединение, но я хочу знать, доступна ли мобильная сеть, если она мне понадобится, даже если в настоящее время я могу быть подключен через WiFi.

Можно ли в любом случае сказать, включены ли данные мобильной сети без опроса, чтобы узнать, подключен ли?

EDIT

Так что при подключении по WiFi Если я захожу в настройки и снимаю флажок «Данные включены» а затем в моем приложении я делаю это:

 boolean mob_avail = 
 conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isAvailable();

mob_avail возвращается как «true», но я отключил данные мобильной сети, поэтому я ожидаю, что он будет «false»;

Если я отключаю Wi-Fi, (правильно) нет соединения, так как я отключил данные мобильной сети.

так как я могу проверить, включены ли данные мобильной сети, когда я подключен по WiFi?

UPDATE

Я взглянул на getAllNetworkInfo (), как это предлагается в комментариях ss1271.

Я вывел возвращенную информацию о мобильной сети при следующих 3 условиях

WiFi Off - мобильные данные включены

WiFi включен - мобильные данные выключены

WiFi On - мобильные данные на

и получил следующие результаты:

With WiFi OFF:

mobile[HSUPA], state: CONNECTED/CONNECTED, reason: unknown, extra: internet, roaming: false, failover: false, isAvailable: true, featureId: -1, userDefault: false

With WiFi On / Mobile OFF

NetworkInfo: type: mobile[HSUPA], state: DISCONNECTED/DISCONNECTED, reason: connectionDisabled, extra: (none), roaming: false, failover: false, isAvailable: true, featureId: -1, userDefault: false

With WiFi On / Mobile On

NetworkInfo: type: mobile[HSPA], state: DISCONNECTED/DISCONNECTED, reason: connectionDisabled, extra: (none), roaming: false, failover: false, isAvailable: true, featureId: -1, userDefault: false

Итак, как вы можете видеть, isAvailable каждый раз возвращал true, а состояние показывалось только как Disconnected, когда WiFi был включен.

CLARIFICATION

яNOT посмотреть, если мой телефон в настоящее время подключен через мобильную сеть. яAM Попытка установить, включил ли пользователь / отключил доступ к данным через мобильную сеть. Они могут включить и выключить это, перейдя в Настройки - & gt; Параметры беспроводной сети и сети -> Настройки мобильной сети - & gt; Данные включены

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

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