我对GCM有几个问题。
Decide which Google-provided GCM connection server you want to use— HTTP or XMPP (CCS).
现在我理解这两者在实践中的区别,但当他说决定选择哪一个时,我不是确定他对我的期望是什么?对于其中两个,我需要做些什么。https://android.googleapis.com/gcm/send
传递参数执行POST请求吗?我可以使用HTTPClient这个,对吗?有什么特别的东西吗?答案 0 :(得分:3)
2 - 基本上就是这样,这里'我的服务器代码,它是我服务器中的PHP文件
public function send_push(){
$message = "your message";
// Set POST variables
$url = 'https://android.googleapis.com/gcm/send';
$fields = array(
'registration_ids' => array("GCM_REGISTRATION"),
'data' => array( "message" => $message ),
);
$headers = array(
'Authorization: key=YOUR_API_KEY',
'Content-Type: application/json'
);
// Open connection
$ch = curl_init();
// Set the url, number of POST vars, POST data
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode( $fields ) );
// Execute post
$result = curl_exec($ch);
// Close connection
curl_close($ch);
echo $result;
}
GCM_REGISTRATION是您第一次在GCM中注册后运行应用程序时获得的哈希值。如果一切正常,你可以在logcat中看到这个
api_key是您在创建应用程序时获得的哈希值(您可能已在文档中看到过)
3 - 我认为它不需要成为服务器,因为它实际上会将消息发送到Google服务器,而这些服务器会将其发送到您的应用
答案 1 :(得分:3)
是的,http和ccs服务器之间存在很大差异。前者涉及简单的http请求。后者需要xmpp协议实现。
是的,如果您采用gcm http方法,任何提交http请求的代码都应该有效。
出于测试目的,您不需要服务器。提交http请求的任何代码都可以。但是,您必须将设备注册ID传递给服务器代码才能发送GCM消息。