有没有办法从“gcm通知”中获取数据。这是我用gcm发送的json字符串的一部分:“data”:{“state”:“deliver”}}。这里我使用php curl请求发送数据。提前谢谢。
答案 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");