Получилось получить DeviceToken? А то у меня такая же проблема...
Upd: В чате выяснилось, что код создания подключения и получения токена нужно выполнять в отдельном потоке. Например так:
TTask.Run(
procedure ()
begin
FPushService := nil;
FPushServiceConnection := nil;
{$IF defined(ANDROID)}
FPushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.GCM);
FPushService.AppProps[TPushService.TAppPropNames.GCMAppID] := ANDROID_SEND_ID;
{$ENDIF}
if Assigned(FPushService) then
begin
FPushServiceConnection := TPushServiceConnection.Create(FPushService);
FPushServiceConnection.OnChange := OnServiceConnectionChange;
FPushServiceConnection.OnReceiveNotification := OnReceiveNotificationEvent;
FPushServiceConnection.Active := True;
FDeviceID := FPushService.DeviceIDValue[TPushService.TDeviceIDNames.DeviceID];
FDeviceToken := FPushService.DeviceTokenValue[TPushService.TDeviceTokenNames.DeviceToken];
TThread.Synchronize(TThread.CurrentThread,
procedure ()
begin
Log('DeviceID: ' + FDeviceID);
Log('DeviceToken: ' + FDeviceToken);
end);
end;
end);
Так все работает!