Delphi Xe8,如何获取android设备令牌?

时间:2015-06-17 13:22:27

标签: delphi google-cloud-messaging delphi-xe8 android-devicetoken

我注册了Google云消息传递(GCM)系统。我正在使用Delphi Xe8。

我需要使用gcm来获取发送通知的android设备令牌。

但我不知道设备令牌。

如何获取设备令牌?

3 个答案:

答案 0 :(得分:3)

您可以使用以下代码获取DeviceID和DeviceToken ...

var 

    ADeviceID, ADeviceToken : String; 

begin

    APushService := TPushServiceManager.Instance.GetServiceByName( TPushService.TServiceNames.GCM );
    APushService.AppProps[ TPushService.TAppPropNames.GCMAppID ] := '123...GCMAppID...456';  // Your GCM App ID
    AServiceConnection := TPushServiceConnection.Create( APushService );
    AServiceConnection.Active   := True;
    AServiceConnection.OnChange := OnServiceConnectionChange;
    AServiceConnection.OnReceiveNotification := OnReceiveNotificationEvent;
    ADeviceID    := APushService.DeviceIDValue[ TPushService.TDeviceIDNames.DeviceID ];
    ADeviceToken := APushService.DeviceTokenValue[ TPushService.TDeviceTokenNames.DeviceToken ];
end;

答案 1 :(得分:2)

  p : TJavaObjectArray<JString>;
begin
  gcm :=   TJGoogleCloudMessaging.JavaClass.getInstance(SharedActivity.getApplicationContext);
  p := TJavaObjectArray<JString>.Create(1);
  p.Items[0] := StringToJString('GCM Project Id');
  Memo1.Lines.Add(JStringToString(gcm.register(p)));
end;

答案 2 :(得分:0)

如果您关注本手册http://docwiki.embarcadero.com/RADStudio/XE8/en/Multi-Device_Application_to_Receive_Push_Notifications

然后在本手册中您从PushEvents1创建事件的位置 你可以通过这段代码获得Devicetoken。

procedure TForm1.PushEvents1DeviceTokenReceived(Sender: TObject);
begin
ShowMessage('Devicetoken received');
ShowMessage(PushEvents1.BindSource.Adapter.PushSender.DeviceToken);
end;