¿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