자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Firemonkey Android GCM Service 구현시 문제
2014.02.14 03:13
안녕하세요, 고재철입니다.
Android에서 GCM을 이용할때 이미 만들어져 있는 com.google.android.gcm.GCMBroadcastReceiver 와
com.google.android.gcm.GCMIntentService를 이용하여, 앱이 종료중일때도 Push를 받을 수 있게 작업을 하려고 합니다.
기본적인 구현은 끝났고, 문제가 한가지 있습니다.
GCMIntentService에서
public native void native_onMessage(Context context, Intent intent)
선언하고
@Override
protected void onMessage(Context context, Intent intent) {
native_onMessage(context, intent);
}
와 같이 구현했습니다.
그리고 델파이에서 initialize 영역에 JNI를 이용하여 함수를 연결하였습니다.
디바이스 테스트를 진행하여, 앱이 background, foreground 상관없이 정상적으로 메시지를 전달받습니다.
앱을 종료하고 메시를 보내면 오류가 발생합니다.
아무래도 앱이 종료되면서 JNI를 사용하여 등록했던 함수의 정보가 사라져서 그런것이라고 생각하고 있는데,
이 부분을 해결할 수 있는 방법이 있을까요?
없다면 메시지를 받을때 Notification 하는 부분을 Java로 구현을 해야 하는 상황입니다.
Firemonkey Android GCM Service 구현시 문제
2014.02.14 03:13
안녕하세요, 고재철입니다.
Android에서 GCM을 이용할때 이미 만들어져 있는 com.google.android.gcm.GCMBroadcastReceiver 와
com.google.android.gcm.GCMIntentService를 이용하여, 앱이 종료중일때도 Push를 받을 수 있게 작업을 하려고 합니다.
기본적인 구현은 끝났고, 문제가 한가지 있습니다.
GCMIntentService에서
public native void native_onMessage(Context context, Intent intent)
선언하고
@Override
protected void onMessage(Context context, Intent intent) {
native_onMessage(context, intent);
}
와 같이 구현했습니다.
그리고 델파이에서 initialize 영역에 JNI를 이용하여 함수를 연결하였습니다.
디바이스 테스트를 진행하여, 앱이 background, foreground 상관없이 정상적으로 메시지를 전달받습니다.
앱을 종료하고 메시를 보내면 오류가 발생합니다.
아무래도 앱이 종료되면서 JNI를 사용하여 등록했던 함수의 정보가 사라져서 그런것이라고 생각하고 있는데,
이 부분을 해결할 수 있는 방법이 있을까요?
없다면 메시지를 받을때 Notification 하는 부분을 Java로 구현을 해야 하는 상황입니다.
다른 분들의 답변이 없어 저라도 답변을 답니다. 어려운 질문을 해주셨네요^^
사실 GCM의 경우 엠바카데로에서 정식 지원하고 있지 않아 개발자들이 다른 방향으로 많이들 접근하고 있습니다.
(저희도 GCM관련된 문의를 본사 측에도 요청했지만, 구현 중이라는 답변을 들었습니다.)
저도 데브기어 에반젤리스트로써 GCM부분이 아쉬운 부분이구요. 하지만 첫술에 배부를 수 없듯이 처음부터 많은 기능을 다 구현할 수는 없었던 것 같습니다.
저라도 GCM 기능을 구현해 보고 테스트 해봤으면, 함께 고민하고 도움을 드릴 수 있었을텐데 아직 시도 전이라 답변을 드리기 힘드네요.
저도 시간을 내서 GCM 관련된 기능과 이슈가 된 부분도 한번 보고 다시 답변을 달겠습니다.
그리고 가능하시면 qc.embarcadero.com이나 Tool > Quality Center을 이용하셔서 본사측으로도 이슈 전달해 주시면 대단히 감사하겠습니다^^;
마지막으로, 이곳은 데브기어에서 운영하지만 개발자들의 정보를 공유하는 곳이어서 모든 글에 데브기어에서 답변을 달지 않으니 양해 부탁드립니다^^