Habilite y deshabilite un Broadcast Receiver

Intento habilitar y deshabilitar un receptor de difusión utilizando este método PackageManager:

setComponentEnabledSetting(componentName,
        PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
        PackageManager.DONT_KILL_APP);

El receptor de difusión está registrado en el manifiesto. El receptor funciona bien pero cuando trato de deshabilitarlo, todavía recibe los mensajes de difusión. Cuando deshabilito el receptor en el manifiesto por "android: enabled =" false "", el receptor no recibe nada pero no puedo habilitarlo.

Llamo al método desde dentro de un servicio.

    PackageManager pm  = getApplicationContext().getPackageManager();
    ComponentName componentName = new ComponentName("com.app",
             ".broadcast_receivers.OnNetworkChangedReceiver");
    pm.setComponentEnabledSetting(componentName,
            PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
            PackageManager.DONT_KILL_APP);

Manifiesto de Android:

    <receiver android:name=".broadcast_receivers.OnNetworkChangedReceiver"
                android:enabled="true">
            <intent-filter>
                    <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
            </intent-filter>
    </receiver>

El recepto

public class OnNetworkChangedReceiver extends BroadcastReceiver {
private static final String TAG = "OnNetworkChangedReceiver";

@Override
public void onReceive(Context context, Intent intent) {
    Log.d(TAG, "in OnNetworkChanged");
    }
}

yer también llamé al método desde una Actividad. Pensé que funcionaba, pero hoy ya nada funciona. ¿Podría ser que a veces hay un gran retraso en la intención (android.net.conn.CONNECTIVITY_CHANGE) que malinterpreté ayer como deshabilitar el receptor?

El enfoque con PackageManager es la dirección correcta o hay un error básico en la idea?

Muchas gracias, Sven

Respuestas a la pregunta(2)

Su respuesta a la pregunta