Como saber se 'Mobile Network Data' está ativado ou desativado (mesmo quando conectado por WiFi)?

Eu tenho um aplicativo que eu quero poder usar para obter um relatório de status de conexão de uma consulta remota.

Quero saber se o WiFi está conectado e se o acesso a dados está ativado pela rede móvel.

Se o WiFi ficar fora de alcance, quero saber se posso confiar na rede móvel.

O problema é que os dados ativados sempre são retornados como verdadeiros quando estou conectado por WiFi e só posso consultar corretamente a rede móvel quando não estiver conectado por WiFi.

Todas as respostas que tenho visto sugerem polling para ver qual é a conexão atual, mas eu quero saber se a rede móvel está disponível, caso eu precise, mesmo que eu possa estar conectado por WiFi no momento.

Existe alguma maneira de dizer se os dados da rede móvel estão habilitados sem pesquisa para ver se está conectado?

EDITAR

Então, quando conectado por WiFi Se eu vou para as configurações e desmarque 'Data Enabled' e, em seguida, no meu aplicativo eu faço isso:

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

mob_avail é retornado como 'true', mas eu desabilitei dados da rede móvel, portanto, seria de esperar que fosse 'falso'

Se eu desligar o WiFi, não haverá (corretamente) nenhuma conexão, já que desativei os dados da rede móvel.

Então, como faço para verificar se os dados da rede móvel estão ativados quando estou conectado por WiFi?

ATUALIZAR

Eu dei uma olhada em getAllNetworkInfo (), como sugerido nos comentários por ss1271

Eu enviei as informações retornadas sobre a rede móvel sob as 3 condições a seguir

WiFi desativado - dados móveis em

WiFi ligado - dados móveis desativados

WiFi ligado - dados móveis em

e obteve os seguintes resultados:

Com WiFi desligado:

mobile [HSUPA], estado: CONNECTED / CONNECTED, razão: desconhecido, extra: internet, roaming: false, failover: falso, isAvailable: true, featureId: -1, userDefault: false

Com WiFi ligado / celular desligado

NetworkInfo: tipo: mobile [HSUPA], estado: DISCONNECTED / DISCONNECTED, razão: connectionDisabled, extra: (nenhum), roaming: false, failover: falso, isAvailable: true, featureId: -1, userDefault: false

Com WiFi ligado / celular ligado

NetworkInfo: tipo: mobile [HSPA], estado: DISCONNECTED / DISCONNECTED, razão: connectionDisabled, extra: (nenhum), roaming: false, failover: falso, isAvailable: true, featureId: -1, userDefault: false

Então, como você pode ver isAvailable retornou true toda vez, e state apenas mostrou como Disconnected quando WiFi estava em efeito.

ESCLARECIMENTO

eu souNÃO procurando ver se meu telefone está conectado atualmente pela Rede Móvel. EuSOU tentando estabelecer se o usuário ativou / desativou o acesso a dados pela rede móvel. Eles podem ativar e desativar isso indo para Configurações -> Configurações de rede e sem fio -> Configurações de rede móvel -> Dados ativados

questionAnswers(13)

yourAnswerToTheQuestion