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

ошибка external exception 36 при создании токена FCM


Denisviz

Вопрос

Здравствуйте, хочу настроить 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.

 

Изменено пользователем Denisviz
ошибка
Ссылка на комментарий

Рекомендуемые сообщения

Ответов пока нет

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...