Проблема в незарегистрированном приемнике вещания - PullRequest
0 голосов
/ 14 марта 2019

Я хочу, чтобы у моего приложения был статически широковещательный приемник, потому что я хочу, чтобы он обнаруживал входящее сообщение, пока приложение закрыто. Я добавил в манифест, как

<receiver android:name=".SMSReceiver"
        android:exported="true"
        android:enabled="true">

        <intent-filter>
            <action android:name="android.provider.Telephony.SMS_RECEIVED" />
        </intent-filter>
    </receiver>

теперь я хочу, чтобы он динамически отменил регистрацию по ключу. когда переключатель выключен, он показал, что не обнаруживает входящие SMS. Как я мог сделать это. Пожалуйста, помогите мне

Ответы [ 2 ]

0 голосов
/ 14 марта 2019

Вы можете проверить значение конфигурации в получателе, зарегистрированном в манифесте, и ничего не делать в случае необходимости.Пример:

public class MyBroadcastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if (myBroadcastReceierIsOff) {
            return;
        }
        (...)
    }
}
0 голосов
/ 14 марта 2019

Поскольку вы не можете динамически изменять содержимое манифеста.

Вы можете использовать общие предпочтения для сохранения состояния коммутатора как true или false.

Затем внутри onRecieve, получите состояние из предпочтения, а затем выполняйте свое действие, только когда состояние истинно, иначе не выполняйте.

...