2013-07-01 2 views
0

저는 자바와 안드로이드 개발에 새로운 것이므로 잘만하면이 질문은 충분히 구체적입니다. 안녕하세요 세계 앱을 쓰려면 GoogleCloudMessaging을 사용하고 싶습니다. 지금은 내 앱이 googleapis 서버에 등록하고 등록 ID를 얻은 다음 내 서버로 보내주기를 원합니다. 나중에 서버 응답에 대해 걱정할 것입니다. 나는 패키지를 사용하는 것입니다 :GoogleCloudMessaging Hello World register

import com.google.android.gms.gcm.GoogleCloudMessaging 

나는 다음과 같은 코드를 사용하여 클라우드에 내 장치를 등록 할 필요가 있음을 알고 있어요 :

GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(context); 
String registrationId = gcm.register(senderId); 

내 질문에 내가이 부릅니까 어디? 내 MainActivity onCreate()? 그것은 메인 스레드에서 네트워크 IO이기 때문에 나는 할 수 없다고 생각하지만 AsyncTask를 만들면 내 메인 스레드가 내 registrationId를 볼 수 있도록 어떻게해야합니까? 그래서 나중에 ID로 send 함수를 호출 할 수 있습니다. 그것?

는 (필자는 GCM 서버를 통해 양방향 메시징을 할 수있는 방법이 실현,하지만 난 아직도이 방법을 수행하는 방법을 알고 싶습니다. 감사합니다!) 모든

답변

0

첫째, 당신은 AsyncTask를 사용해야합니다 왜냐하면 register 메소드가 블로킹 (blocking)이기 때문에 메인 쓰레드가 호출 할 수 없기 때문이다.

사용자는 공유 등록 정보에서 등록 ID를 저장하고 어디에서나 액세스 할 수 있습니다. GCM 프로그래머 가이드의 deno 코드를 참조하십시오.

send 메서드를 사용하는 경우 장치에서 서버로 보내는 메시지 인 클라우드 메시지에만 장치를 사용해야합니다. 이러한 메시지가 서버에 도달하려면 서버가 GCM 서버와 XMPP 연결을 설정해야합니다.

단순한 클라우드에서 장치로 메시지를 보내려면 HTTP API를 통해 서버에서 앱으로 메시지를 보낼 수 있습니다.

+0

응답 해 주셔서 감사합니다. – user2537523