从GCM获取数据到Android设备

时间:2012-07-24 07:00:50

标签: android google-cloud-messaging

有没有办法从“gcm通知”中获取数据。这是我用gcm发送的json字符串的一部分:“data”:{“state”:“deliver”}}。这里我使用php curl请求发送数据。提前谢谢。

3 个答案:

答案 0 :(得分:9)

GCM以JSON格式发送数据。您需要解析JSON对象以获取要发送的数据。以下代码适用于我:

 public void onMessage(Context context, Intent intent)
  {
    String action = intent.getAction();
    if ("com.google.android.c2dm.intent.RECEIVE".equals(action)) {          
        message = intent.getStringExtra("data"); 
        String s=message.toString();
        parse_json_add(s);
    }
  }

然后解析JSON:

private void parse_json_add(String text) {
    if (text!= null) 
    { 
         JSONObject temp=new JSONObject(text);
         value=temp.get("state").toString();    
    }
}

答案 1 :(得分:4)

每当消息到达时,它将调用OnMessage()方法

你必须覆盖这个方法

@Override
    protected void onMessage(Context arg0, Intent arg1) {
        // TODO Auto-generated method stub
        Log.d("onMessage",arg1.getExtras().getString("state"));
          } 

答案 2 :(得分:1)

您可以使用以下代码获取数据。有关详细信息,请查看Handling Received Data

String state = intent.getStringExtra("state");