Google Cloud Messaging enregistrement de l'id de l'expiration
Je suis en utilisant Google Cloud Messaging pour mon application Android et je suis en train d'essayer de comprendre lors de l'enregistrement de l'id de l'expiration. De cette post j'ai pu comprendre que Google tend à actualiser l'ID dans le temps. Je suis curieux de voir comment ma demande de savoir quand l'id sera mise à jour? Si Google décide d'actualiser l'ID et mon serveur est jusqu'à l'envoi du message à l'ancien ID je ne pense pas que le message sera envoyé. Donc j'ai essayer et de s'inscrire à chaque fois et de voir si les identifiants sont les mêmes?
Également le même post dit que l'id d'obtenir actualisé lors de l'application des changements de version, mais sur le changement de version par le manifeste de l'identifiant d'inscription n'a pas changé. Quel est donc le point sur le fait d'essayer de vous inscrire à nouveau des changements de version?
MODIFIER
Ici est le côté serveur. Exactement où serait l'canonique id-ils être conservés?
Côté serveur code:
<?php
//Message to be sent
$message = $_POST['message'];
//Set POST variables
$url = 'https://android.googleapis.com/gcm/send';
$fields = array(
'registration_ids' => array($_POST['registrationIDs']),
'data' => array( "message" => $message ),
);
$headers = array(
'Authorization: key=' . $_POST['apiKey'],
'Content-Type: application/json'
);
//Open connection
$ch = curl_init();
//Set the url, number of POST vars, POST data
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode( $fields ) );
//Execute post
$result = curl_exec($ch);
//Close connection
curl_close($ch);
echo $result;
?>
OriginalL'auteur AndroidDev93 | 2013-08-13
Vous devez vous connecter pour publier un commentaire.
GCM serveur habituellement actualise(Si votre ancien numéro d'enregistrement est arrivé à expiration) l'enregistrement des identifiants. Quand exactement ce qui se passe n'est pas documentée, n'importe où. Mais vous en serez informé lorsque cela se produit.
Comment sommes-nous informés?
Comme je l'ai dit, il sera envoyé pour la 1ère fois, même après l'expiration.
Je ne pense pas que cela se passe, pour sûr. Mais même si cela arrive(enregistrement des changements d'identité) de son le même scénario comme expliqué ci-dessus, de sorte que tous vous avez besoin est de prendre soin de la canonique id.
MODIFIER
Non, vous n'obtiendrez que côté serveur. Lorsque vous envoyer la notification à une
registration id
à l'aide de Curl. Obtenir une réponse de lacurl_exec
et vérifiercanonical_ids
.J'ai édité la réponse par l'ajout du code relatives à la façon d'obtenir la forme canonique de l'ids.
En fait, votre code sera tout simplement le numéro d'id qui doivent être remplacés. Si vous souhaitez les remplacer, vous devez analyser le résultat JSON et chercher les éléments qui contiennent "registration_id", qui sera la clé pour la mise à jour de la valeur. Si vous n'êtes pas à la recherche pour trouver le nombre d'utilisateurs ayant remplacé registration_id valeurs, votre fonction est trivial.
OriginalL'auteur Archie.bpgc
Je ne suis pas sûr de savoir exactement quand GCM id est dessiné mais, GCM documentation du Client stipule que "Vérifier si l'application a été mise à jour; si oui, il doit effacer le numéro d'enregistrement, depuis l'existant id d'enregistrement n'est pas garanti pour fonctionner avec la nouvelle version de l'application." Donc, oui, il pourrait être encore à l'aide de vieux regId mais, ce n'est pas garantis qu'elle n'aura pas un nouvel id d'enregistrement.
Ouai, c'est juste le fail safe.
OriginalL'auteur Milan
Comme par http://developer.android.com/google/gcm/client.html#sample-register, contrairement aux versions précédentes de la GCM et C2DM, Google lui-même n'est pas à jour l'enregistrement. Une fois que vous avez le numéro d'enregistrement de la demande d'inscription initiale, vous êtes bon pour aller, sauf dans un cas: vous n'avez encore besoin de ré-enregistrer lorsque l'utilisateur des mises à niveau vers une nouvelle version (ce cas est également traitée dans l'exemple dans le lien ci-dessus).
Lorsqu'une application est mise à jour, il devrait la nullité de l'enregistrement de l'ID, comme il n'est pas garanti pour fonctionner avec la nouvelle version. Car il n'y a pas de cycle de vie de la méthode appelée lorsque l'application est mise à jour, le meilleur moyen de réaliser cette validation est faite par le stockage de l'actuelle version de l'application lors de l'enregistrement de l'ID est stocké.
OriginalL'auteur Shivanand Darur
Pour obtenir le dernière GCM ID Voici mon travail autour de.
Dans le code ci-dessus, je suis de vérifier si le
canonical_ids
existe dans le résultat.Si le
canonical_ids
existe alors je suis la nouvelleregistration_id
Alors, Maintenant, le système sera automatiquement mis à jour la Nouvelle Gcm Id quand il est changé.
Mise à jour :
Le code ci-dessous peut être utilisé si le GCM code est modifié à plusieurs reprises
OriginalL'auteur Sulthan Allaudeen