Я пытаюсь включить и отключить широковещательный приемник с помощью этого метода PackageManager:
setComponentEnabledSetting(componentName,
        PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
        PackageManager.DONT_KILL_APP);
Радиовещательный приемник зарегистрирован в манифесте. Приемник работает нормально, но когда я пытаюсь его отключить, он все равно получает широковещательные сообщения. Когда я отключу приемник в манифесте с помощью "android: enabled =" false ", получатель ничего не получает, но я не могу его включить.
Я вызываю метод изнутри службы.
    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);
Android манифест:
    <receiver android:name=".broadcast_receivers.OnNetworkChangedReceiver"
                android:enabled="true">
            <intent-filter>
                    <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
            </intent-filter>
    </receiver>
Получатель
public class OnNetworkChangedReceiver extends BroadcastReceiver {
private static final String TAG = "OnNetworkChangedReceiver";
@Override
public void onReceive(Context context, Intent intent) {
    Log.d(TAG, "in OnNetworkChanged");
    }
}
Я также вызвал метод изнутри Activity вчера. Я думал, что это сработало, но сегодня ничего не работает. Может быть, иногда существует большая задержка в намерении (android.net.conn.CONNECTIVITY_CHANGE), которую я неправильно истолковал вчера как отключив приемник?
Является ли подход с PackageManager правильным направлением или есть основная ошибка в идее?
Большое спасибо, Свен
