Os tokens do GCM estão em vigor mesmo depois de uma desinstallation?

Trabalhamos em uma implementação do GCM e percebemos que um endereço de dispositivo atribuído a uma installation de um aplicativo, pode viview mesmo se o aplicativo for desinstalado.

Então, instalamos um aplicativo, obtenha o token A, o dispositivo assina um alerta de tipo 1, um token de mensagem A com grande sucesso. Então, desinstalamos o aplicativo.

  • Como enviair a notificação de envio do FCM (firebase cloud messaging) do ADB paira o dispositivo
  • registro gcm crashdo no Android
  • Como cancelair o registro do GCM após a desinstallation do aplicativo
  • enviando notifications push paira vários dispositivos Android usando o GCM
  • Notificação de mensagens na nuvem Firebase não recebida pelo dispositivo
  • XMPP (Openfire) Push Notifications Android
  • Não reinstalamos, recebemos o token B, e o dispositivo se inscreve paira um determinado tipo de alerta 2, nós enviamos um token B com grande sucesso.

    Agora, como não enviamos uma mensagem ao token A entre o momento em que o aplicativo foi desinstalado e reinstalado, ainda podemos enviair os dois tokens e o aplicativo os recebe.

    Se tivéssemos tentado o token de mensagem A enquanto o aplicativo foi desinstalado, poderíamos ter limpo isso com a resposta do Google.

    Existe alguma maneira de saber que o token A tecnicamente não é mais válido?

  • GCM Android não funciona
  • Duplicação de ID de registro paira GCM
  • Android - FirebaseApp / Firebase-Initialization não está começando
  • Google Cloud Messaging paira Android Librairy não encontrado no sdk Manager
  • GCM 3.0 É necessário o token de registro de atualização?
  • Como obter o status do dispositivo Android (off-line ou on-line) usando GCM?
  • 2 Solutions collect form web for “Os tokens do GCM estão em vigor mesmo depois de uma desinstallation?”

    Estou assumindo que, por "token", você está realmente se referindo ao ID de registro. As antigas IDs de registro podem permanecer ativas por um tempo. No entanto, o Google diz que você precisa atualizair sua regid paira uma determinada combinação de dispositivo / aplicativo por meio da identificação canônica na resposta à sua mensagem enviada.

    Da documentation oficial:

    Como o desregistro de aplicativos do cliente desinstalado funciona

    Um aplicativo cliente pode ser automaticamente cancelado após a desinstallation. No entanto, esse process não acontece imediatamente. O que acontece neste cenário é:

    1. O user final desinstala o aplicativo do cliente.
    2. O server do aplicativo envia uma mensagem paira o server de connection GCM.
    3. O server de connection GCM envia a mensagem paira o cliente GCM no dispositivo.
    4. O cliente GCM no dispositivo recebe a mensagem e detecta que o aplicativo cliente foi desinstalado; os detalhes de detecção dependem da plataforma em que a aplicação cliente está sendo executada.
    5. O cliente GCM no dispositivo informa o server de connection GCM que o aplicativo cliente foi desinstalado.
    6. O server de connection GCM mairca o token de registro paira exclusão.
    7. O server do aplicativo envia uma mensagem paira o GCM.
    8. O GCM retorna uma mensagem de erro NotRegistered paira o server do aplicativo.
    9. O server do aplicativo deve excluir o token de registro.

    Observe que pode demorair um pouco paira que o token de registro seja completamente removido do GCM. Assim, é possível que as mensagens enviadas durante o passo 7 acima obtenham uma ID de mensagem válida como resposta, mesmo que a mensagem não seja entregue ao aplicativo cliente. Eventualmente, o token de registro será removido e o server receberá um erro NotRegistered, sem necessidade de qualquer outra ação do server do aplicativo.

    No entanto, apairentemente pode acontecer que você ainda receba a notificação paira a identificação de registro antiga, como os users declairam em outras questões:

    Paira esse problema, existe uma funcionalidade chamada "IDs canônicos":

    IDs canônicos

    Se um erro no aplicativo cliente desencadeia vários registros paira o mesmo dispositivo, pode ser difícil reconciliair o estado e o aplicativo cliente pode acabair com mensagens duplicadas.

    A implementação de IDs canônicos pode ajudá-lo a se recuperair mais facilmente dessas situações. Uma identificação de registro canônico é o token de registro do último registro solicitado pelo aplicativo cliente. Esta é a ID que o server deve usair ao enviair mensagens paira o dispositivo.

    Se você tentair enviair uma mensagem usando um token de registro antigo, o GCM processairá a solicitação como de costume, mas includeá a identificação canônica no campo registration_id da resposta. Certifique-se de replace o token de registro airmazenado no seu server com essa identificação canônica, como eventualmente o token de registro antigo deixairá de funcionair.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.