Перейти к содержанию
Fire Monkey от А до Я

Denisviz

Пользователи
  • Постов

    1
  • Зарегистрирован

  • Посещение

Достижения Denisviz

  1. Здравствуйте, хочу настроить Push уведомления на андроиде, делал по примеру с документации http://docwiki.embarcadero.com/RADStudio/Rio/en/Firebase_Android_Support При запуске программы выдает ошибку "external exception 36" или "external exception D6". Подскажите пожалуйста, может где-то нужно расширить дозвала. Заранее спасибо unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.PushNotification.Android, FMX.Memo.Types, FMX.Controls.Presentation, FMX.ScrollBox, FMX.Memo, System.PushNotification, JSON, FMX.StdCtrls, FMX.Helpers.Android, FMX.Objects,FMX.Platform; type TForm1 = class(TForm) MemoLog: TMemo; Button1: TButton; procedure OnReceiveNotificationEvent(Sender: TObject; const ServiceNotification: TPushServiceNotification); procedure OnServiceConnectionChange(Sender: TObject; PushChanges: TPushService.TChanges); procedure Button1Click(Sender: TObject); private FDeviceId: string; FDeviceToken: string; { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.fmx} procedure TForm1.Button1Click(Sender: TObject); var PushService: TPushService; ServiceConnection: TPushServiceConnection; Notifications: TArray<TPushServiceNotification>; begin PushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.GCM); ServiceConnection := TPushServiceConnection.Create(PushService); ServiceConnection.Active := True; ServiceConnection.OnChange := OnServiceConnectionChange; ServiceConnection.OnReceiveNotification := OnReceiveNotificationEvent; FDeviceId := PushService.DeviceIDValue[TPushService.TDeviceIDNames.DeviceId]; MemoLog.Lines.Add('DeviceID: ' + FDeviceId); MemoLog.Lines.Add('Ready to receive!'); // Checks notification on startup, if application was launched fromcold start // by tapping on Notification in Notification Center Notifications := PushService.StartupNotifications; if Length(Notifications) > 0 then begin MemoLog.Lines.Add('-----------------------------------------'); MemoLog.Lines.Add('DataKey = ' + Notifications[0].DataKey); MemoLog.Lines.Add('Json = ' + Notifications[0].Json.ToString); MemoLog.Lines.Add('DataObject = ' + Notifications[0].DataObject.ToString); MemoLog.Lines.Add('-----------------------------------------'); end; end; procedure TForm1.OnServiceConnectionChange(Sender: TObject; PushChanges: TPushService.TChanges); var PushService: TPushService; begin PushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.GCM); if TPushService.TChange.DeviceToken in PushChanges then begin FDeviceToken := PushService.DeviceTokenValue[TPushService.TDeviceTokenNames.DeviceToken]; MemoLog.Lines.Add('FireBase Token: ' + FDeviceToken); Log.d('Firebase device token: token=' + FDeviceToken); end; if (TPushService.TChange.Status in PushChanges) and (PushService.Status = TPushService.TStatus.StartupError) then MemoLog.Lines.Add('Error: ' + PushService.StartupError); end; procedure TForm1.OnReceiveNotificationEvent(Sender: TObject;const ServiceNotification:TPushServiceNotification); begin MemoLog.Lines.Add('-----------------------------------------'); MemoLog.Lines.Add('DataKey = ' + ServiceNotification.DataKey); MemoLog.Lines.Add('Json = ' + ServiceNotification.Json.ToString); MemoLog.Lines.Add('DataObject = ' + ServiceNotification.DataObject.ToString); MemoLog.Lines.Add('---------------------------------------'); end; end.
×
×
  • Создать...