0
我的應用程序是一款android遊戲,帶有一個運行在谷歌應用程序引擎上的服務器,並使用GCM與服務器連接。我已經在GCM中註冊了設備,然後我將registerId發送到服務器以與設備連接。當我運行遊戲有時它可以正常工作,但有時設備不會從GCM收到任何東西,服務器仍然從設備收到。我不知道發生了什麼事:■GCM有時可以工作,有時不會
這裏就是我登記我的設備在主類的OnCreate:第一次
GCMRegistrar.checkDevice(this);
GCMRegistrar.checkManifest(this);
if (GCMRegistrar.isRegistered(this)) {
Log.d("info", GCMRegistrar.getRegistrationId(this));
}
regId = GCMRegistrar.getRegistrationId(this);
deviceId = getDeviceId();
if (regId.equals("")) {
GCMRegistrar.register(this, SENDER_ID);
Log.d("info", GCMRegistrar.getRegistrationId(this));
}
然後我運行一個手機,我用這個代碼的應用程序到registationId發送到服務器:
sendMessage("code=" + REGISTRATION_CODE +
"&deviceId=" + deviceId +
"®Id=" + regId +
"&phoneNumber=" + phoneNumber);
這裏是服務器的代碼將消息發送回設備:
public void sendMessage(String regId, String text) {
Sender sender = new Sender(APIKey);
Message message = new Message.Builder().collapseKey("1").timeToLive(3).delayWhileIdle(true).addData("message", text).build();
try {
sender.send(message,regId,1);
} catch (IOException e) {
e.printStackTrace();//Manejar la excepcion
}
}
我不明白爲什麼停止工作,我在比賽的中間,停止工作,然後再工作......