我在Android的GCM上工作,我通過asp.net服務器將數據發送到設備,如下面的代碼。gcm onMessage()被調用但數據爲空...?
public void SendCommandToPhone(String sCommand)
{
String DeviceID = "";
DeviceID = "APA91bF9SSDEp-UPU8UwvctGt5ogfrSw0UdilTWlCujqItHcr-eiPJ31ZDI-IeqTbLr92ZOPF31bXtB1_5gNEPHAq82N4ji0stm4cy9U0Yuk0Awhjl9PS02okuc9rRhJobkgOt-ofm5Br0KR-Y";
WebRequest tRequest;
tRequest = WebRequest.Create("https://android.googleapis.com/gcm/send");
tRequest.Method = "post";
//tRequest.ContentType = "application/json";
tRequest.ContentType = "application/x-www-form-urlencoded";
tRequest.Headers.Add(string.Format("Authorization: key={0}", "AIzaSyBgCKDhyHnRmmu8jCfmupHVJA8cVkIa-XEZS"));
String collaspeKey = Guid.NewGuid().ToString("n");
String postData = string.Format("registration_id={0}&data.message={1}&collapse_key={2}", DeviceID, "YourMessage", collaspeKey);
Byte[] byteArray = Encoding.UTF8.GetBytes(postData);
tRequest.ContentLength = byteArray.Length;
Stream dataStream = tRequest.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
WebResponse tResponse = tRequest.GetResponse();
dataStream = tResponse.GetResponseStream();
StreamReader tReader = new StreamReader(dataStream);
String sResponseFromServer = tReader.ReadToEnd();
tReader.Close();
dataStream.Close();
tResponse.Close();
}
,並在應用程序的onMessage代碼波紋管
@Override
protected void onMessage(Context context, Intent intent) {
String message = intent.getStringExtra("message");
}
它被稱爲正常在調試時,我打電話asp.net的服務,但在這裏消息串變爲零。
任何人可以幫助,我在哪裏出了問題......
如果你可以嘗試發佈你的請求看起來像(你的代碼的結果)它窩幫助我們看到究竟發生了什麼。 – selsine