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

FPushService.DeviceTokenValue = nil Что делать?


Антон Емельянов

Вопрос

Приложение не даёт DeviceToken...  ,  (DeviceID есть)
FDeviceToken := FPushService.DeviceTokenValue[TPushService.TDeviceTokenNames.DeviceToken];

Тест пример реализован по статье нашего замечательного модератора
http://blog.rzaripov.kz/2017/02/firebase-android-ios-2.html

Используется:
Компиляция SDK Android 5.1
Среда-разработки Delphi XE 10.2 

Пожалуйста запустите проект на своей версии Delphi..
Посмотрите будет  сгенерирован ТОКЕН или нет.. 
в случае удачи ,  напишите какая у вас версия Дельфи..

Исходник-проекта:  https://drive.google.com/open?id=1mCPvYYd0tXBALt-J_ymVuzChj_TtztC0
Только APK: https://drive.google.com/open?id=1x8q4RyVylpGOMjcQYjlvFxFBSQaYs7NL 


Помогите люди добрые :unsure:
За помощь и консультацию отблагодарю..
 

где токен.png

Изменено пользователем Антон Емельянов
Ссылка на комментарий
  • Ответы 52
  • Создана
  • Последний ответ

Лучшие авторы в вопросе

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

  • 0
26 минут назад, Антон Емельянов сказал:

да я его видел. он не работает

Что именно означает "не работает"? Напишите Идентификатор отправителя который указываете в демо-приложении.

Ссылка на комментарий
  • 0

Получилось получить 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);

 

Так все работает!

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

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

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

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

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

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

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

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

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


×
×
  • Создать...