Expiração do ID de registro do Google Cloud Messaging
Estou usando o Google Cloud Messaging para meu aplicativo Android e estou tentando entender quando o ID de registro expira. Deisto post eu pude entender que o Google tende a atualizar o ID em algum momento. Estou curioso como meu aplicativo saberá quando o id for atualizado? Se o Google decidir atualizar a ID e o meu servidor for até o envio da mensagem para o ID antigo, não acho que a mensagem será enviada. Então, eu teria que tentar registrar todas as vezes e ver se os ids são iguais?
Além disso, o mesmo post diz que o ID seria atualizado quando a versão do aplicativo fosse alterada, mas ao alterar a versão através do manifesto, o ID de registro não mudaria. Então, qual é o ponto em tentar registrar novamente as alterações de versão?
EDITAR Aqui está o lado do servidor. Onde exatamente o id canônico seria armazenado?
Código do lado do servidor:
<?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;
?>