使用手機發送的GCM信息不包含土耳其字符。下面的編碼沒有找到解決方案。Android gcm如何使用土耳其字符?
這樣我就會收到來自Android的消息。 Android的代碼
@Override
protected void onMessage(Context context, Intent intent) {
String output = "";
try {
output = new String(intent.getStringExtra("message").getBytes("8859_1"), "utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
generateNotification(context, output);
}
ASP.NET C#在這種方式,發送message.In此外,一個控制檯應用程序。 C#代碼
public string SendNotification(string deviceId, string message)
{
var utf8 = Encoding.UTF8;
byte[] utfBytes = utf8.GetBytes(message);
message = utf8.GetString(utfBytes, 0, utfBytes.Length);
string GoogleAppID = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
var SENDER_ID = "XXXXXXXXXXXXXXXXX";
var value = message;
WebRequest tRequest;
tRequest = WebRequest.Create("https://android.googleapis.com/gcm/send");
tRequest.Method = "post";
tRequest.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
tRequest.Headers.Add(string.Format("Authorization: key={0}", GoogleAppID));
tRequest.Headers.Add(string.Format("Sender: id={0}", SENDER_ID));
System.Web.HttpUtility.UrlEncode(message);
string postData = "collapse_key=score_update&time_to_live=108&delay_while_idle=1&data.message=" + message + "&data.time=" +
System.DateTime.Now.ToString() + "®istration_id=" + deviceId.ToString() + "";
Console.WriteLine(postData);
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();
return sResponseFromServer;
}
它沒有奏效,土耳其人物消失。 – stronger
設備ID的用途是什麼?我的意思是,我需要放在裏面嗎?謝謝! –