1

GCM을 통해 푸시 알림을 수신하도록 설계된 Android 애플리케이션이 있습니다. 필자는 처음에 응용 프로그램을 설계 할 때 "사용하지 않는"튜토리얼을 사용했는데 (왜냐하면 내가 찾은 가장 깊은 튜토리얼 이었기 때문에), 내 dev 전화가 API 2.4를 실행 중이었기 때문에 서비스를 가동시킬 수 없었습니다. 많은 문제.Google Cloud Messaging의 기본 설정 이해 - 기본 설정

이제 내 개발 기기에서 Android 버전 4.4.2를 실행하므로 모든 기기에서 GCM을 제대로 처리하도록 내 애플리케이션을 '업그레이드하는'것이 목표입니다 (현재로서는 어떻게해야할까요? API 수준에 따라 푸시 알림을 처리 할 수 ​​있습니다.

Google Cloud 메시징 용 데모 클라이언트 앱을 만드는 데 대한 Android 개발자 안내서를 따르려고했습니다. 여기를 클릭하십시오. https://developer.android.com/google/gcm/client.html

똑똑한 코딩 관행을 무시하고 싶지만이 공식 워크 플로우는 범위면에서 조금 컸습니다 (내 애플리케이션은 Phonegap을 지원하며 기본 GCM 구현은 사용하는 것보다 훨씬 쉽습니다). https://code.google.com/p/gcm/source/browse/samples/?r=1ca8e646c517310e2d46a6a6eda74106b8084fc5

: 내 자바 코드) 마지막 도랑 노력으로

에 절대적으로 필요한 것보다 폰갭에 대한 PushPlugin, 나는 더 처리하고 싶지 않아, 나는 단지 그들이 여기에 제공된 소스에서 데모 GCM 코드를 다운로드

gcm-demo-client 응용 프로그램을 가져 오려고 시도했지만 SENDER_ID를 알았지 만 SERVER_URL에 대해 아무 것도 이해하지 못했습니다. Android 개발자가 제공하는 문서는 HTTP 대 CCS에 대해 매우 일반적으로 말하고 있으며,이 서버가 Google Cloud Messaging의 모든 구성 요소에 잘 어울리는 곳을 파악하는 데 어려움을 겪고 있습니다.

포함 된 gcm-demo-server 프로젝트 디렉토리 (Java Project의 일종 인 것 같습니다)를 다운로드한다고 가정합니다. 어떻게 호스트합니까? 이전에 사용되지 않는 GCM에서는 단순히 기기 등록 ID가 포함 된 양식과 제목 및 문맥이 포함 된 메시지를 제출하는 기본 Android 애플리케이션을 사용했습니다. 불행하게도, 데모 서버를 Eclipse로 가져 오는 방법을 알아낼 수 없다. (이클립스는 어떤 프로젝트 파일도 포함하지 않는다고 생각하기 때문에), 그리고이 서버가 내 애플리케이션과 어떤 용량으로 연결되는지 이해할 수 없다.

TL/DR 질문 요약 : 1.) 위의 URL # 2에서 gcm-demo-server를 "호스팅"하는 방법은 무엇입니까? 2.) 클라이언트 응용 프로그램의 등록 ID를 클립 보드로 복사 할 수 있다면 "안드로이드 서버"응용 프로그램을 사용하여 메시지를 보낼 수 있습니까? 3) 아마도 나 일 뿐이 겠지만 gcm-demo-client 프로젝트 디렉토리에있는 Receiver 클래스와 닮은 것은 보이지 않고 GcmIntentService 만 보입니다. 응용 프로그램이 메시지를 제대로 처리 할 수 ​​없을 때 어떻게 의도가있을 수 있습니까?!

양해 해 주셔서 감사합니다. (PS - 코드를 제공 할 수 없습니다. 문제의 코드가 제공된 Android 개발자 GCM 데모 코드 일 뿐이므로 큰 문제는 아닙니다.)

답변

0

1) 서버 호스팅을 제공하는 회사가 많이 있습니다 서비스. 하나를 선택해야합니다.

2) 수동으로 등록 ID를 복사하고 "서버"역할을하는 응용 프로그램에서 하드 코딩하면 실제 서버를 호스트 할 필요가 없지만 개발 중에 만 작동합니다. 프로덕션에서는 앱을 설치하는 사용자가 여러 명이라면 모든 사용자의 등록 ID를 받아 저장하는 실제 서버가 필요합니다.

3) 당신이 말하는 데모 클라이언트 프로젝트가 오래되었고 더 이상 사용되지 않는 라이브러리 (gcm.jar)는 BroadcastReceiver의 기본 구현을 포함하며 GCM 서버에서 메시지를 수신하고 인 텐트 서비스를 시작합니다. current demo app을 참조하면 BroadcastReceiver 클래스를 찾을 수 있습니다.

+0

감사합니다. @Eran,이 모든 것이 삭제되었습니다. 나는 프로젝트가 어디에 있었는지를 깨닫지 않고 현재 데모 어플리케이션을 다운로드했다 (조금 더 탐험 했어야했다!). 고마워요! 알았어. 이제 재미있는 부분이 생겼다. 오래된 앱을 찢어 버리고 새 코드를 삽입하는 것이다. – Dan

0

데모 응용 프로그램은 gradle 프로젝트이기 때문에 데모 응용 프로그램이 작동하지 않을 수 있습니다. 개발자는 Android Studio에서이 응용 프로그램을 열어야합니다. 그것이 안드로이드 프로젝트로 볼 수없는 이유 일 수도 있습니다.

최근 GCM을 직접 구현하기 시작했으며 전혀 어렵지 않습니다. AppEngine을 사용하여 앱의 백엔드 부분을 보유하고 있습니다. Android 스튜디오에는 안드로이드 클라이언트와 클라우드 엔드 포인트를 포함한 백엔드 파트를 생성하는 매우 빠르고 쉬운 방법이 있으며 메시지를 보내기위한 웹 인터페이스 (사용하지 않아도 됨)가 있습니다.

나는 어쩌면이 당신을 위해 충분히 만족스러운 답변을하지 않습니다이 튜토리얼을 https://github.com/GoogleCloudPlatform/gradle-appengine-templates/tree/master/GcmEndpoints

을 따라,하지만 코드가 많이 읽을 발견하고 나는이 물건이 어떻게 작동하는지 이해했다.

+0

응답 해 주셔서 감사합니다. Android Studio가 실제로 갈 길이 란 것을 깨달았습니다. 나는 백엔드 (이전 경험이 있었음)에 App Engine을 사용하는 것을 고려해 보았지만, 오랜 시간에 걸쳐 앉아있을 시간이 없었다. 그게 내 옆에있을 것 같은데! – Dan