2014-12-01 2 views
1

현재 gcm.js 모듈을 사용하여 GCM 메시지를 처리하는 티타늄 앱을 개발 중입니다. 그러나 GCM은 메시지 전달과 관련하여 실제로 버그가있는 것으로 보입니다. 그것은 매우 자주 발생합니다. 메시지를 받으면 몇 시간 지연되어 메시지를 받게됩니다.Android - 새로운 gcm-messages를 강제로 가져 오기

나는 GCM이 에너지 절약을 시도한다는 것을 알고 있습니다. 하지만 이상하게도 GCM은 휴대 전화가 USB를 통해 내 컴퓨터에 연결될 때 가장 신뢰할 수 없으며 앱을 디버깅하는 중입니다. 제 생각에 GCM은이 경우 에너지를 절약하려고해서는 안됩니다. 전화가 충전되는 즉시 알림이 도착합니다.

"지금 또는 전혀 사용하지 않음"효과를 사용하기 위해 TTL 값 0-10으로 메시지를 보내려고했으나 아무런 메시지도받지 못했습니다.

내 안드로이드 폰이 수동으로 새로운 GCM 메시지를 가져 오도록 강제하는 방법이 필요합니다. 따라서 수신 할 때 어떤 일이 발생하는지 디버그 할 수 있습니다. 나는 전화가 메시지를받을 때까지 몇 시간을 기다릴 시간이 없다.

이 방법이 있습니까?

추신 : 예, Nexus 5, Galaxy Nexus 및 일부 htc 기기를 포함한 여러 휴대 전화를 사용해 보았습니다. 어디에나 같은 :/

+0

GCM이 아니며 버그가 있으며 Titanium/Javascript가 문제입니까? – Squonk

+0

@Squonk 물론 수신 가능성이 있습니다 만, 수신 부분이 Java로 작성되어 알림을받지 못하기 때문에 의심 스럽습니다. 또한 gcm 알림을 가져 오는 코드베이스가 완전히 다른 다른 gcm 모듈을 사용해 보았습니다. gcm 알림도 작동했지만 동일한 지연 및 신뢰할 수없는 상태로 인해 gcm.js로 전환되었습니다. 그래서 문제가 gcm 모듈인지는 의심 스럽습니다. 전체 gcm 시스템입니다. –

답변

0

당신은 (단지 디버깅 목적)이 시도 할 수 있습니다 :
1) 확인 delay_while_idle 플래그 (최종 제품에서 거짓을 유지하기 위해 조언을하지 않을) false로 설정되어 있는지 확인합니다.
2) TTL을 그대로 유지합니다.
3) 페이로드가있는 메시지를 사용하십시오 (한도는 4KB입니다). collapse_key 매개 변수를 제거하여이 값을 설정할 수 있습니다.
4) 이제 수신기에 message_type을 구현하십시오.

여기 내 논리는 적절한 페이로드가있는 메시지를 보내고 10 초 동안 지속되면 메시지가 붕괴된다는 것입니다. 축소되면 message_type_deleted을 통해 해당 메시지를 가져올 수 있습니다. (가져 오기 동기화 앱)

추신 : 나는 이것이 안정적인 기술 일 것이라고는 생각하지 않지만 가장 가능성이있는 목표를 달성 할 것입니다.

잘하면 도움이 되었기를 바랍니다.

관련 문제