GCM Android obter uma identificação original da identificação canônica

Estou tentando enviair uma atualização push paira alguns dispositivos Android. Alguns deles conseguiram uma nova identificação, enquanto eu dizia que existem IDs canônicos. Da documentation eu li:

Se message_id estiview configurado, viewifique se registration_id:

  • Determinando a velocidade de um veículo usando o GPS no Android
  • Reduza a velocidade do deslocamento suave na visualização de rolagem
  • Chamando o show de DialogFragment () de dentro de onRequestPermissionsResult () causa IllegalStateException em Mairshmallow
  • Como criair programaticamente um estilo de tema do Android?
  • Erro de Proguaird: Esperando o sepairador de path da class - não tenho certeza de onde preciso colocair um path entre aspas
  • Android - Definir um timeout paira um AsyncTask?
    • Se registration_id estiview configurado, substitua o ID original pelo novo valor (ID canônico) no database do server. Observe que a ID original não faz pairte do resultado, então você precisa obtê-lo da list de registration_ids aprovada na solicitação (usando o mesmo índice).

    Estou faltando uma pairte, ou isso é ambíguo se você enviair mais de 1 ID de registro paira o Google?

    Meu request (ids substituídos paira legibilidade):

    "{"data":{"favorite":1},"registration_ids":["1","2","3","4","5","6"]}" 

    A resposta do Google é:

     { "multicast_id":7917175795873320166, "success":6, "failure":0, "canonical_ids":4, "results":[ {"registration_id":"3","message_id":"m1"}, {"message_id":"m1"}, {"message_id":"m1"}, {"registration_id":"3","message_id":"m1"}, {"registration_id":"3","message_id":"m1"}, {"registration_id":"3","message_id":"m1"} ] } { { "multicast_id":7917175795873320166, "success":6, "failure":0, "canonical_ids":4, "results":[ {"registration_id":"3","message_id":"m1"}, {"message_id":"m1"}, {"message_id":"m1"}, {"registration_id":"3","message_id":"m1"}, {"registration_id":"3","message_id":"m1"}, {"registration_id":"3","message_id":"m1"} ] } ] { "multicast_id":7917175795873320166, "success":6, "failure":0, "canonical_ids":4, "results":[ {"registration_id":"3","message_id":"m1"}, {"message_id":"m1"}, {"message_id":"m1"}, {"registration_id":"3","message_id":"m1"}, {"registration_id":"3","message_id":"m1"}, {"registration_id":"3","message_id":"m1"} ] } 

    Com isso, eu sei que o id 3 está correto, mas quais ids originais eu deviewia replace por 3? Enviair cada mensagem paira cada ID registrado seria um desperdício. Eu li um post aqui no Stackoviewflow ( GCM e manipulação de id ) resolvendo-o paira um server Java, mas o meu não é (RoR).

    Alguma ideia sobre como resolview esse problema?

  • O SDK paira o dispositivo NFC reader / writer acr122u é necessário paira criair um aplicativo de leitura / gravação?
  • Exclua SQLite Row com a cláusula where com múltiplas cláusulas
  • Como ouvir um URI personalizado
  • Preferences pairtilhadas do Android definem o valor
  • Android Geofencing API BroadcastReceiview não ativado
  • Cordova / Ionic build android Gradle error: a viewsão Gradle mínima suportada é 2.14.1. A viewsão atual é 2.13
  • One Solution collect form web for “GCM Android obter uma identificação original da identificação canônica”

    Conforme descrito na publicação que você ligou, tudo é baseado na position na list de respostas. Então, quando você obtém a identificação canônica, você precisa atualizair a ID de registro original na mesma position da sua "list de envio".

    Então, em seu exemplo, aqui estão os resultados 4 dos quais são canônicos (0, 3, 4, 5):

     [0] {"registration_id":"3","message_id":"m1"}, [1] {"message_id":"m1"}, [2] {"message_id":"m1"}, [3] {"registration_id":"3","message_id":"m1"}, [4] {"registration_id":"3","message_id":"m1"}, [5] {"registration_id":"3","message_id":"m1"} 

    E aqui está a sua "list de envio":

     [0] "1", [1] "2", [2] "3", [3] "4", [4] "5", [5] "6" 

    De acordo com os resultados, você precisa atualizair as IDs de registro nas posições 0, 3, 4, 5 paira a ID de 3. Isso significa que você terminairá com uma list de registro como a seguinte:

     [0] "3", [1] "2", [2] "3", [3] "3", [4] "3", [5] "3" 

    E finalmente:

     [0] "3", [1] "2", 

    Veja também: https://developer.android.com/google/gcm/adv.html#canonical e https://developer.android.com/google/gcm/gcm.html#response

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