我正在尝试使用GCM服务发送和接收远程推送通知,当我有Delphi xe7这个方法在这个问题的答案2中工作[Google Cloud Messaging in Delphi XE5?,但在西雅图它的剂量,我得到java错误但是,我已经按照这个问题的答案,并设法得到设备令牌ID,但我不能收到通知,当我发送到我的手机,这是发送的代码:
const
sendUrl = 'https://android.googleapis.com/gcm/send';
var
Params: TStringList;
AuthHeader: STring;
idHTTP: TIDHTTP;
SSLIOHandler: TIdSSLIOHandlerSocketOpenSSL;
begin
idHTTP := TIDHTTP.Create(nil);
try
SslIOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
idHTTP.IOHandler := SSLIOHandler;
idHTTP.HTTPOptions := [];
Params := TStringList.Create;
try
Params.Add('registration_id='+ Memo1.Lines.Text);
Params.Values['data.message'] := Edit1.Text;
idHTTP.Request.Host := sendUrl;
AuthHeader := 'Authorization: key=' + MyServerKey;
idHTTP.Request.CustomHeaders.Add(AuthHeader);
IdHTTP.Request.ContentType := 'application/x-www-form-urlencoded;charset=UTF-8';
idHTTP.Post(sendUrl, Params);
finally
Params.Free;
end;
finally
FreeAndNil(idHTTP);
end;
在我的AndroidManifest.template.xml中添加了<service android:name="com.embarcadero.gcm.notifications.GCMIntentService" />
,并检查了权利列表中的接收远程推送通知。