Im tratando de recibir BroadcastMessages de CONNECTIVITY_ACTION:BroadcastReceiver para CONNECTIVITY_ACTION siempre devuelve un valor nulo en intent.getExtras()
// register BroadcastReceiver on network state changes
final IntentFilter mIFNetwork = new IntentFilter();
mIFNetwork.addAction(android.net.ConnectivityManager.CONNECTIVITY_ACTION); //"android.net.conn.CONNECTIVITY_CHANGE"
registerReceiver(mIRNetwork, mIFNetwork);
y el receptor es:
private BroadcastReceiver mIRNetwork = new BroadcastReceiver() {
@Override
public void onReceive(final Context context, final Intent intent) {
android.util.Log.i(TAG,"mIRNetwork: Network State Received: "+intent.getAction());
Bundle extras = intent.getExtras();
if (extras!=null){
android.util.Log.i(TAG,"mIRNetwork: ACTION_BACKGROUND_DATA_SETTING_CHANGED: "+extras.getString(ConnectivityManager.ACTION_BACKGROUND_DATA_SETTING_CHANGED));
android.util.Log.i(TAG,"mIRNetwork: CONNECTIVITY_ACTION: "+extras.getString(ConnectivityManager.CONNECTIVITY_ACTION));
android.util.Log.i(TAG,"mIRNetwork: EXTRA_EXTRA_INFO: "+extras.getString(ConnectivityManager.EXTRA_EXTRA_INFO));
android.util.Log.i(TAG,"mIRNetwork: EXTRA_NO_CONNECTIVITY: "+extras.getString(ConnectivityManager.EXTRA_NO_CONNECTIVITY));
android.util.Log.i(TAG,"mIRNetwork: EXTRA_REASON: "+extras.getString(ConnectivityManager.EXTRA_REASON));
}
}
en extras cortos siempre es nula. Pensé que si pierdo la conexión WiFi debería obtener EXTRA_NO_CONNECTIVITY (porque es la única forma de acceder a Internet) o al menos algo de la lista. Pero sin suerte. Si desconecto mi receptor WiFi AP recibe su mensaje pero con extras nulos. Cuando enciendo mi WiFi otra vez, el receptor dispara pero no hay extras ... ¿Por qué? ¿Cómo saber que la aplicación perdió alguna conexión de red? Pensé que era el camino.
'if (! (Action.equals ConnectivityManager.CONNECTIVITY_ACTION))' puede' Entiendo esto cuando la única acción agregada al filtro es CONNECTIVITY_ACTION? –
@MuhammadBabar Puede ignorar la condición para verificar la acción si ha registrado solo una acción para la conectividad. – Dharmendra
Para comprobar si tenemos conexión a Internet, ¿es seguro usar "! Intent.getBooleanExtra (ConnectivityManager.EXTRA_NO_CONNECTIVITY, false)"? –