2012-01-24 3 views
0

C2DM을 사용하는 안드로이드 앱의 서버 측을 작성하려고합니다. 나는 그것을 PHP로 작성하려고합니다. 나는 기본적으로 지금 당장 시험을하고 있습니다. 나는 실제 안드로이드 애플 리케이션을위한 전화 예를 들어 크롬을 복사하고 그것을 좋아하는 것으로 수정. 지금 가장 큰 질문은 등록입니다.C2DM 및 PHP 서버

모든 것을 바로 잡아 보도록하겠습니다.

처음으로 기기를 등록 할 때 앱이 내 서버와 직접 대화합니다. 서버가 장치 ID를 잡고 200으로 응답합니다. 맞습니까?

그래서 php 측에서 $ deviceid = $ _POST [ 'deviceId']와 같은 장치 ID를 얻습니다. 맞습니까? 데이터베이스에 추가하십시오. 그런 다음 앱에 응답합니다. 특정 응답을 정확히 어떻게 다시 보냅니 까? 헤더에서 추측하겠습니까? 어떻게해야할지 모르겠습니다.

내가 옳은 길을 가고 있는지 확인하거나 부인하여 혼동을 피하십시오.

도움 주셔서 감사합니다.

답변

3

다시 앱에 응답하지 않습니다. 서버 인증 토큰을 받으려면 서버를 Google 서버에 등록해야합니다. 그런 다음 Google 서버가 푸시 알림을 전화로 전송하도록 Google C2DM 서비스에 대한 게시물 요청에서 해당 서버 토큰과 장치 토큰을 사용합니다. 푸시 알림이 C2DM으로 전송되면 앱과 서버는 절대 통신하지 않으며 모든 것이 Google을 통해 이루어 지지만 메시지를 보내려는 장치의 기기 ID를 서버가 알 수있는 메커니즘을 구현해야합니다. www.vogella.de/articles/AndroidCloudToDeviceMessaging/article.html

+0

푸시 알림을 전송하는 동안 이해하지만 그 전에 발생하는 것을 의미합니다 ... 내 앱에서 '안녕하세요, 나중에 알림을 받고 싶습니다. 내 기기 ID는 여기에 있습니다.'어떻게 처리해야합니까? – bwoogie

+0

Ok 앱에 장치 ID가 있다고 가정합니다. 이제 뭐? 그것까지 너. 서버가 장치 ID를 얻는 방법을 구현해야합니다. 어쨌든, 앱은 기기 ID와 필요한 다른 정보 (예 : 기기 ID가 연결된 계정)를 서버에 알려줘야합니다. 이것은 모두 개방되어 있으며 귀하가 처리해야합니다. 장치 ID를 전달하기 위해 앱 엔드 포인트와 서버 엔드 포인트를 모두 구현해야합니다. 이것은 종종 게시물 요청으로 수행됩니다. 다시 한번 말하지만, 나는 좋은 예입니다. – onit

+0

감사합니다. 내가 알아야 할 것이 있습니다. – bwoogie

0

은 당신이 정말로 서버에 전송하기 전에 ID를 입수했는지 확인하십시오 : 서버 코드는 자바 비록

이것은 꽤 상세한 가이드입니다. 테스트 용 에뮬레이터를 사용하는 경우 php 스크립트에서 echo을 수행하면 logcat에 메시지가 표시됩니다.

Google에서 만료 된 등록 ID를 새로 고침하여 애플리케이션이 Google에서 새로운 알림/ID를 선택하고 데이터베이스에 전송하여 메시지를 처리 ​​할 수 ​​있도록해야합니다.