android - 我无法通过谷歌云消息在我的 Android 设备上接收消息?

标签 android python google-cloud-messaging

我正在使用 python 作为服务器应用程序将我的消息发送到 GCM 服务器以在注册的 android 设备上接收。我从具有消息 ID 的 GCM 服务器获得成功。

在 android 移动设备上,我在 onMessage() 函数中的 arg1 中接收数据,但在 arg1 中只有两个键,来自 & collapse_key

在下面的 Java 代码中,from 键包含一个 LongInt 值和 messagenull

谁能告诉我我在 Java 代码或 Python 代码中遗漏了什么?

这是我的 JavaCode:

@Override
protected void onMessage(Context arg0, Intent arg1) {
    // TODO Auto-generated method stub
    String keys="";
    for (String key : arg1.getExtras().keySet())
        keys+=key+"||";
    String mess = arg1.getExtras().getString("from");
    String mess1 = arg1.getExtras().getString("message");
}

Python 代码:

def SelectAction(request,client_id):
    if request.method == 'GET':

        message = request.GET.get('message','')
        if not message:
            return Error(message = "Argument Missing.")
        registration=  Registration.objects.get(registeredUser = user)
        values = {}
        values['registration_id'] = registration.appId
        values['data.message'] = message
        param = urllib.urlencode(values)
        req = urllib2.Request("https://android.googleapis.com/gcm/send", param)
        req.add_header( 'Content-Type' , 'application/x-www-form-urlencoded;charset=UTF-8' )
        req.add_header( 'Authorization' , 'key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
        response = urllib2.urlopen(req)
        reply = {}
        if response.read().split('=')[0] == 'id':
            reply['error'] = '0'
        else:
            reply['error'] = '1'

        return HttpResponse(json.dumps(reply), mimetype="application/javascript")
    else:
        return Error()

最佳答案

尝试在执行其他操作之前提取数据:

Bundle data = intent.getExtras();
        if (data != null) {
            data.isEmpty(); toString();
        }

现在你可以使用 toString();并查看数据包含的内容:

Log.i("C2DM", data.toString());

检查 C2DM 的日志并粘贴您得到的内容。

关于android - 我无法通过谷歌云消息在我的 Android 设备上接收消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12036734/

相关文章:

python - 通过 Web API 设置 Hudson 构建描述

python - 如何对两个 pandas 列进行舍入

python - mongodb 中的 StringField 要求

android - 如何删除android中的通知?

android - 如果 LOCAL_SERVER 为 True,Android Release Build 会失败吗?

java - 相机应用程序在模拟器中工作但在真实手机中停止?

android - Android Studio新建项目后报错

android - 应用程序未运行时小米没有收到通知

android-studio - 没有 key [permission#$ {applicationId} .permission.C2D_MESSAGE]的记录

android - 在 kivy 中重启应用程序