Очистка данных приложения, не очищающих токен GCM и темы подписки GCM

1

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

Мои вопросы:

  • Как я могу получить список всех подписанных тем из GCM?
  • Как удалить все подписанные темы, не зная их имен?
  • Если токен GCM будет изменен после очистки данных приложения или все автоматически будут удалены все подписанные темы в этом случае?
  • 0
    По первому и второму вопросу нет возможности извлечь все темы или удалить их все без их названий. Для вашего третьего вопроса ваш регистрационный токен будет изменен, если вы установите приложение на своем устройстве.
Теги:
token
google-cloud-messaging

2 ответа

2
Лучший ответ
  • Вы можете не только использовать инструмент для отладки, я предлагаю:) Вы должны сохранять подписанные темы, например, в sharedprefs. Если у вас нет токена в sharedpreferences, вы должны вызвать instanceId.deleteInstanceID()

  • Просто позвоните instanceId.deleteInstanceID()

  • Токмен будет меняться редко, но когда он изменится, вы должны повторно отправить все свои темы.

Также проверьте этот вопрос на SO


Инструмент

Вы можете использовать этот инструмент для отладки:)

Когда я не подписываюсь ни на какую тему, я получаю что-то вроде этого:

{
    "applicationVersion": "39",
    "connectDate": "2016-01-12",
    "application": "com.esportlivescore.develop.debug",
    "authorizedEntity": "11443413691531",
    "connectionType": "MOBILE",
    "appSigner": ".................",
    "platform": "ANDROID"
}

После того, как я подписал какую-то тему:

{
    "applicationVersion": "39",
    "connectDate": "2016-01-12",
    "application": "com.esportlivescore.develop.debug",
    "authorizedEntity": "11443413691531",
    "rel": {
        "topics": {
            "match-28388-start": {
                "addDate": "2016-01-13"
            }
        }
    },
    "connectionType": "MOBILE",
    "appSigner": ".................",
    "platform": "ANDROID"
}

Так мало пользы. Я использую Advanced REST Client (плагин для Chrome)

Запрос HTTP GET

https://iid.googleapis.com/iid/info/<TOKEN>?details=true
Content-Type:application/json
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA

TOKEN в URL: token obtainet from google

ключ: можно найти в консоли разработчика Google/консоли GCM

Изображение 174551

1

Как я могу получить список всех подписных тем из gcm?

Текущая версия GCM не предоставляет способ для этого.

Как удалить все темы субтитров, не зная их имен?

Документация указывает InstanceId.deleteInstanceID() сделаем это.

Если токен GCM будет изменен после четких данных приложения или удалить все подписывать темы в этом случае автоматически?

Хотя документация подразумевает, что регистрация токенов и подписки удаляются, если пользователь очищает данные приложения, что не соответствует текущей версии GCM. Этот вопрос обсуждается в ответе на этот question.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню