안녕하세요.
현재 c2dm을 이용해서 어플리케이션을 서비스중입니다.
헌데, 최근에 단말기를 교체한 다음부터 registration id가 들어오지 않아 푸시를 수신하지 못하는 사용자가 생기기도 하고, 푸시 수신이 잘 안된다는 유저가 많아졌다고 합니다.
헌데 앱단에서는 초기 1회에 한해서 Intent를 통해서 registration id를 읽어오고, manifest에 등록된 receiver에 의해서 수신 처리 해주는 로직밖에 없는데... 되던것이 안되는것은 좀 의아하고 어떻게 테스트 해야할지 막막합니다.
현재 발송은 php 소스로 짜여져있고, 웹서버에서 처리합니다.
그래서 개발자 사이트를 뒤져보는데, http://android-developers.blogspot.com/2012/04/android-c2dm-client-login-key.html#links
와 같은 포스팅이 있더군요..
혹시 이것과 관계가 있는걸까요..?
+ ) 사장님과 특정 유저에게 발생하는 문제 인데...
Notification에 defaults에 사운드와 진동을 설정값에 따라 or 연산으로 각각 추가해주고 알림해주게끔 되어있는데요.
진동이나 벨소리가 지속적으로 울리는 현상이 있다고 합니다 (길게는 몇분동안 지속된다네요.. - -)
현재, notification.flags |= Notification.FLAG_AUTO_CANCEL; -> remoteview를 이용하고 notification.contentIntent로 pendingIntent를 대입 시키고 NotificationManager.notify(id, notification);으로 알림하게끔 되어있습니다.
Notification의 아이디는 상수로 모든 알림의 아이디가 같아서 알림을 수신했을때 해당 아이디의 알림을 캔슬 시키고 notify하게끔 처리해서 업데이트 했습니다. 해결이 안됐습니다.
Notification의 flags에 FLAG_ONLY_ALERT_ONCE를 or연산으로 추가시켜서 업데이트 했습니다. 해결이 안됐습니다.... ㅜㅠ
제가 테스트 할경우엔 1회만 진동, 벨소리가 울리고 정상적으로 작동하는데 어디에 원인이 있을까요..?