使用GCM以阿拉伯语发送通知

Hus*_*adi 5 asp.net android google-cloud-messaging

我正在使用GCM向Android设备发送通知.

我用来在GCMIntentService中获取消息的代码如下:

@Override
    protected void onMessage(Context ctx, Intent intent) {
        // TODO Auto-generated method stub
        String j =intent.getStringExtra("message");
        generateNotification(ctx, j);
    }
Run Code Online (Sandbox Code Playgroud)

我在服务器端使用以推送或发送这些通知的代码如下:

Dim request As WebRequest = WebRequest.Create("https://android.googleapis.com/gcm/send")
request.Method = "POST"
request.ContentType = "application/x-www-form-urlencoded"
request.Headers.Add("Authorization: key=AIzaSyA47-XMaePL1mmI0P1yQ9V4sntMVn9q-1o")
request.Headers.Add("Sender: id=648406549877")
Dim collapsKey = Guid.NewGuid.ToString("n")
Dim postdata As String = "registration_id=" + regid_String_reveived_from_device_after_registering_with_GCM + "&data.message=" + TextBox1.Text + "&collapse_key=" + collapsKey
Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postdata)
request.ContentLength = byteArray.Length
Dim dataStream As Stream = request.GetRequestStream
dataStream.Write(byteArray, 0, byteArray.Length)
dataStream.Close()
Dim resposne As WebResponse = request.GetResponse
Dim dataresponse As Stream = resposne.GetResponseStream
Dim reader As New StreamReader(dataresponse)
Dim sResponseFromServer As String = reader.ReadToEnd
Label2.Text = sResponseFromServer
reader.Close()
dataresponse.Close()
resposne.Close
Run Code Online (Sandbox Code Playgroud)

当我使用上面的代码发送任何英语语言通知时,我在我的设备中收到它没有任何问题,但是当我使用上面的代码用阿拉伯语发送通知时,我没有得到任何消息,在我看来两个Logcat中都是空白的和通知.我用来开发这个应用程序的android API是16.

那么我怎样才能得到用阿拉伯语写成通知的消息,就像我用英语发送这些消息一样.

是来自ASP.Net Side还是android Side的问题.

任何帮助或重定向将完全赞赏.

Hus*_*adi 6

通过执行以下操作,我解决了我面临的上述问题一周:

我从ASP.net端发送的消息,表示为TextBox1.Text放置在请求的正文中,它需要进行URL编码,因为我只编码了TextBox1.Text解决我的问题的值,让我的Android应用程序收到阿拉伯语语言通知:

我只改变了我的asp.net代码:

Dim postdata As String = "registration_id=" + regid(i) + "&data.message=" + TextBox1.Text + "&collapse_key=" + collapsKey
Run Code Online (Sandbox Code Playgroud)

如下:

Dim postdata As String = "registration_id=" + regid(i) + "&data.message=" + HttpUtility.UrlEncode(TextBox1.Text) + "&collapse_key=" + collapsKey
Run Code Online (Sandbox Code Playgroud)

并保持我的Android代码为其.