GCM을 사용하는 서버와 통신하는 앱을 만들고 있습니다. 그것은 모두 잘 작동하지만. 나는 다른 안드로이드 장치에 새로운 메시지가 있다는 알림을 보내는 인스턴트 채팅을 구현했습니다. 다른 장치가 noti를 클릭하면 인스턴트 대화방에 들어가 응답하거나 새로 업데이트 된 메시지를 보게됩니다.내 안드로이드 장치가 깨어있는 지 알 수있는 방법
저는 서버의 플래그를 비교하여이 작업을 수행합니다. 메시지가 처음으로 전송되고 앱이나 기기가 잠든 경우 새 채팅방에 연결할 수있는 noti가 생성됩니다. 메시지가 현재 실행중인 대화방의 메시지 인 경우 메시지가 업데이트됩니다.
하지만 쉽게 알 수 있듯이 메시지를받는 장치가 깨어 있지 않으면 아무 것도 할 수 없습니다.
그래서 장치 상태가 새 대화방에서 보낸 메시지인지 아니면 현재 대화방에서 왔는지를 결정하지 못했음을 알리고 싶습니다. 새 장치에서 온 것이면 (장치가 잠자기 상태 일 때) 새로 작성한 대화방으로 연결되는 noti가 표시되며, 현재 대화방에있는 경우에는 대화 로그가 업데이트됩니다.
무엇이 문제인가 보입니까? 확인할 수있는 필드를 업데이트하고 장치 화면을 켤 수있는 브로드 캐스트 수신기를 가질 수 있습니다. – Atrix1987
코드가 실행 중이면 장치가 깨어 있습니다 (화면이 꺼져있을 수도 있음). 서버에 관한 한, 장치가 트래픽을 교환하고 있다면 깨어 있습니다. 그렇지 않으면 (일부 시간 초과 후) 네트워크없이 잠들거나 (일시적으로) - 응용 프로그램 목적에 따라 다를 수 있습니다. –