2012-06-14 3 views
0

Google C2DM 서비스를 구현하려고합니다.Android c2dm 서비스

registrationIntent.putExtra("app", PendingIntent.getBroadcast(context,0,new Intent(), 0)); 
registrationIntent.putExtra("sender","[email protected]"); 
context.startService(registrationIntent); 

거의 모든 자습서에는이 코드 줄이 있습니다. 이 코드를 작성해야하는 서비스입니까? Android는 이러한 유형의 Intent를 처리하는 방법을 알고 있습니다. 기본 생성자가있는 도우미 클래스에서이 메서드를 호출합니다. 위의 메소드에 현재 Context를 전달하여 등록 인 텐트를 만듭니다. 누구나이 작품의 작동 방식이나 내 프로그램의 위치에 대한 통찰력이 있습니까?

답변

0

아니요, 서비스를 작성할 필요가 없습니다. Google 서비스에 인 텐트를 보내야합니다. 인 텐트가 생성되고 서비스 이름이 포함 된 첫 번째 줄은 생략했습니다. 일반적으로 다음과 같습니다.

인 텐트 registrationIntent = 새로운 인 텐트 ("com.google.android.c2dm.intent.REGISTER");

라인 com.google.android.c2dm.intent.REGISTER은 Google의 서비스를 나타냅니다.

이제 등록 결과 (ID 또는 오류)를 수신 할 브로드 캐스트 수신기를 작성해야합니다. 그리고 수신기는 실제 C2DM 메시지를 수신합니다.

+0

첫 줄을 생략했음을 압니다. c2dm에 익숙한 사람을 찾고 싶었습니다 ... 당신 자신처럼. Android 2.2 API에서 Google의 서비스는 무엇입니까? 아니면 다른 곳에서 가져와야합니까? –

+0

Android 2.2 이상 버전에서 제공되며 일부 극단적 인 맞춤 설정은 제외됩니다. –

+0

추가 : Kindle Fire 및 Nook Tablet과 같은 장치에서는 아마도 존재하지 않을 것입니다. 이러한 공급 업체 (Amazon 및 B & N)는 Google의 클라우드 서비스와의 모든 얽힘을 제거하기 위해 열심히 노력하고 있습니다. –

0

당신은

Intent registrationIntent = new Intent("com.google.android.c2dm.intent.REGISTER"); 

이 내가 코딩해야하는 서비스입니다 코드의 가장 흥미로운 부분을 왼쪽? Android는 이러한 유형의 Intent를 처리하는 방법을 알고 있습니다. 의도가 com.google.android.c2dm 도메인에있는 것을

참고. 기기의 Android C2DM 구현은이 의도를 처리하는 방법을 알고 있으며 처리하기 위해 자체 서비스를 시작하게됩니다.

+0

고맙습니다. 첫 번째 라인에 대해 알고 있는데, c2dm에 익숙한 멤버를 대상으로하므로 중요하지 않다고 생각했습니다. V2.2 이상이면 c2dm 구현이 항상 장치에 있습니까? 또는 어딘가에서 c2dm 디렉토리를 가져와야합니까? –

+0

@ 라이언 그레이 : _C2DM_ 서비스는 _Android Market_와 번들로 제공됩니다. 일부는 기억하지 않으므로 다른 곳에서 가져올 필요가 없습니다. –