¿Cómo saber si 'Datos de red móvil' está habilitado o deshabilitado (incluso cuando está conectado por WiFi)?

Tengo una aplicación que quiero poder usar para obtener un informe de estado de conexión de una consulta remota.

Quiero saber si WiFi está conectado y si el acceso a datos está habilitado a través de una red móvil.

Si el WiFi está fuera del alcance, quiero saber si puedo confiar en la red móvil.

El problema es que los datos habilitados siempre se devuelven como verdaderos cuando estoy conectado mediante WiFi, y solo puedo consultar correctamente la red móvil cuando no estoy conectado mediante WiFi.

Todas las respuestas que he visto sugieren un sondeo para ver cuál es la conexión actual, pero quiero saber si la red móvil está disponible en caso de que la necesite, aunque en este momento podría estar conectada a través de WiFi.

¿Hay alguna forma de saber si los datos de la red móvil están habilitados sin sondeo para ver si está conectado?

EDITAR

Entonces, cuando me conecto por WiFi, si voy a la configuración y deselecciono 'Datos habilitados' y luego en mi aplicación, hago esto:

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

mob_avail se devuelve como 'verdadero', pero deshabilité los datos de la red móvil, por lo que espero que sea 'falso'

Si desactivo el WiFi, no hay conexión (con razón) porque deshabilité los datos de la red móvil.

Entonces, ¿cómo verifico si los datos de la red móvil están habilitados cuando estoy conectado por WiFi?

ACTUALIZAR

Eché un vistazo a getAllNetworkInfo () como se sugiere en los comentarios de ss1271

Imprimí la información devuelta sobre la red móvil en las siguientes 3 condiciones

WiFi apagado - Datos móviles en

WiFi activado - Datos móviles desactivados

WiFi activado - Datos móviles en

y obtuve los siguientes resultados:

Con WiFi apagado:

móvil [HSUPA], estado: CONECTADO / CONECTADO, razón: desconocido, extra: internet, roaming: falso, migración tras error: falso, está disponible: verdadero, featureId: -1, usuario Error: falso

Con WiFi encendido / móvil apagado

NetworkInfo: escriba: móvil [HSUPA], estado: DESCONECTADO / DESCONECTADO, motivo: conexión Deshabilitado, extra: (ninguno), itinerancia: falso, conmutación por error: falso, isAvailable: true, featureId: -1, userDefault: false

Con WiFi activado / móvil activado

NetworkInfo: escriba: móvil [HSPA], estado: DESCONECTADO / DESCONECTADO, razón: conexión Deshabilitada, extra: (ninguna), itinerancia: falsa, conmutación por error: falsa, isAvailable: true, featureId: -1, userDefault: false

Entonces, como puede ver, isAvailable se volvió verdadero cada vez, y el estado solo se muestra como Desconectado cuando el WiFi estaba en efecto.

ACLARACIÓN

yo soyNO Mirando para ver si mi teléfono está conectado actualmente por la red móvil. yoA.M tratando de establecer si el usuario ha habilitado o deshabilitado el acceso a los datos a través de la red móvil. Pueden activarlo y desactivarlo en Configuración -> Configuración inalámbrica y de red -> Configuración de red móvil -> Datos habilitados

Respuestas a la pregunta(13)

Su respuesta a la pregunta