등록하려면 새로운 GCM API를 사용하고 있습니다. 방법에 대한 문서에 다음과 같이 명시되어 있습니다.Google Cloud Messaging - 등록 ID 상태
GCM 신청서를 등록하고 등록 ID를 반환하십시오. 은 응용 프로그램이 설치 될 때 이것을 한 번 호출해야하며 반환 된 등록 ID를 서버에 보냅니다.
이 메서드를 반복적으로 호출하면 원래 등록 ID가 반환됩니다. 이 문서 (http://developer.android.com/google/gcm/adv.html#reg-state를) 읽는 동안
그러나, 그것은 특별한 치료를 필요로 두 가지 경우가 있음 상태 :
특별한주의가 필요 두 개의 다른 시나리오도있다 :
가
- 응용 프로그램 업데이트
- 백업 및 복원
응용 프로그램이 업데이트되면 새 버전에서 작동하지 않을 수 있으므로 기존 등록 ID가 무효화되어야합니다.
개발자가 등록 ID를 무효화해야하는지 여부는 명확하지 않습니다. 새로운 GCM의 API 상태 등록 해제 단계를에 관한 또한
:
등록 취소 응용 프로그램. unregister()를 호출하면 서버의 모든 메시지가 중지됩니다. 이것은 차단 호출입니다. UI 스레드에서 호출해서는 안됩니다. 이 메소드를 호출 할 필요는 거의 없습니다. 리소스 측면에서 비용이 많이들뿐만 아니라 등록 ID가 무효화되므로 불필요하게 변경해서는 안됩니다. 더 나은 방법은 단순히 서버가 메시지를 보내지 않게하는 것입니다. 발신자 ID를 변경하려면 등록을 취소하십시오.
그러나 이전 같은 문서 상태 : 구현 GCM 클라이언트에 설명 된대로 응용 프로그램 등록, 그것은, 나중에 사용하기 위해 등록 ID를 저장 제 3 자 서버에 전달해야 할 때마다
등록을 완료하고 서버가 등록을 완료했는지 여부를 계속 추적하십시오 ( ). 서버가 등록을 완료하지 못하면 다시 시도하거나 GCM에서 등록을 취소해야합니다.
이것은 명확하지 않습니다 (등록 취소 처리 방법).
마지막으로 위에서 언급 한 바에 따르면 Canonical ID가 모바일과 어떻게 관련이 있는지 명확하지 않습니다. Google에서 기존 등록에 대한 Canonical ID를 생성하고이를 애플리케이션 백엔드로 다시 전달하는 경우 등록 메소드를 호출하면 모바일의 등록 ID도 변경됩니다. 모바일이 새로운 ID에 대한 정보를 얻으려면 다른 방법이 있습니까?
미리 감사드립니다.