Отключить уведомления GCM

Я разрабатываю приложение, в котором использую GCM. Я взял образец примера GCM из образцов Google из github и реализовал все в порядке, но я хочу ОТКЛЮЧИТЬ уведомления GCM. Я указал, что уведомление GCM включается / выключается в другом действии с помощью кнопки переключения. Когда я нажимаю кнопку переключения, она должна работать соответственно.

Я нашел метод subscribeTopics в RegistrationIntentService.java

private void subscribeTopics(String token) throws IOException {
    GcmPubSub pubSub = GcmPubSub.getInstance(this);
    for (String topic : TOPICS) {
        pubSub.subscribe(token, "/topics/" + topic, null);
    }
}

similarly i have written Un Subscribe method 

ОТКЛЮЧИТЬ уведомления

private void UnSubscribeTopics(String token) throws IOException {
    GcmPubSub pubSub = GcmPubSub.getInstance(this);
    for (String topic : TOPICS) {
        pubSub.unSubscribe(token, "/topics/" + topic, null);
    }
}

Я не могу вызвать метод UnSubscribeTopics. Поскольку этот метод находится в RegistrationIntentService.java, который расширяет Intentservice. Как я могу вызвать метод UnSubscribeTopics?

I'm still getting notifications and here they are using Intent service.I have gone through internet some are saying to delete token(secret token) or delete instance id,but I'm confused what to do?? and how i do that .I am new to Intent service.here they using broadcast receiver also how can i call that in my activity.

Любая помощь???

Заранее спасибо.


person Sanjeev    schedule 21.02.2016    source источник


Ответы (1)


У вас есть два варианта сделать это:

  • 'SharedPreferences' у вас должно быть предпочтение, содержащее значение, должен ли пользователь быть уведомлен или нет. Вы можете установить значение предпочтения «false». В вашем 'GCMIntentService' проверьте значение предпочтения, если оно ложно, ничего не делайте.

  • Вы можете отменить регистрацию своего приложения, чтобы не получать push-уведомления. Для этого можно использовать 'GCMRegistrar.unregistrar()'.

person Android Enthusiast    schedule 22.02.2016