2014-05-13 5 views
0

gcm을 사용하는 안드로이드 응용 프로그램을하고 있습니다. 응용 프로그램을 제거하고 다시 설치할 때 동일한 등록 ID를 다시받을 수 있다는 것을 알게되었습니다. 로깅하는 동안 내가 한 일은 나는 응용 프로그램 서버에서 하나의 고유 한 ID를 가져오고 새 등록 아이디가 만들어 질 때마다 응용 프로그램 서버에서이를 대체 할 수 있습니다. 제 질문은 gcm server의 최신 등록 아이디를 대체하기 위해 표준 아이디를 사용하지 않고 있습니다. 어떤 문제가 생길까요? 도와주세요.gcm 등록 ID의 지속성

답변

0

서버 측에서 응용 프로그램이 올바르게 작동하는 한 은 정상적으로 작동해야합니다. 그러나 응용 프로그램의 버그 이 동일한 장치에 대해 여러 등록을 트리거하는 경우 상태를 조정하기가 어려울 수 있으며 중복 메시지가 발생할 수 있습니다.

GCM은 "정식 등록 ID"라고하는 기능을 제공하여 을 쉽게 복구 할 수 있습니다. 정식 등록 ID는 응용 프로그램에서 요청한 마지막 등록의 ID가되도록 으로 정의됩니다. 장치로 메시지를 보낼 때 서버가 사용해야하는 ID입니다. 나중에에 다른 등록 ID를 사용하여 메시지를 보내려고하면

는 GCM은 평소와 같이 요청을 처리 할 것입니다,하지만 응답의 registration_id 분야에서 정식 등록 ID가 포함됩니다. 서버에 저장된 등록 ID를이 정식 ID로 바꿔야합니다. 결국 사용중인 ID가 으로 작동하지 않게됩니다.

자료 : I는 서버가 생성하는 고유 ID가 장치와 관련된 또는 사용자 로그인 여부를 모르겠어요하지만 http://developer.android.com/google/gcm/adv.html#canonical

+0

전체 답변을 [이 페이지] (http://developer.android.com/google/gcm/adv.html#canonical) 단어로 복사하는 경우 올바른 답변은 해당 단어로 표시됩니다. 소스에 대한 링크를 포함 시키십시오. – Eran

0

귀하의 솔루션은 기본적으로 좋다. 이전 버전 인 경우 앱을 제거 할 때 앱이 손실되지 않도록 기기의 외부 저장소에 저장해야합니다. 후자 인 경우, 여러 사용자가 동일한 사용자로 로그인하는 경우를 어떻게 처리하는지 잘 모르겠습니다.

귀하의 전략은 기기와 서버 모두에서 현재 등록 ID를 유지 관리하는 데 적합하지만 안전하게 Google에 보내려면 정식 등록 ID 응답을 처리해야합니다.