gonzales Опубликовано 31 января, 2019 Поделиться Опубликовано 31 января, 2019 Доброго времени суток! Сменил телефон и перестали приходить пуши при свернутой программе в андроид 8. На 5-ом все работает. Подозреваю, что не стартует сервис {$IF defined(ANDROID)} FPushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.GCM); FPushService.AppProps[TPushService.TAppPropNames.GCMAppID] := FAndroidServerKey; {$ENDIF} Может кто подскажет, в какую сторону копать? Заранее спасибо! Цитата Ссылка на комментарий
0 Евгений Корепов Опубликовано 3 февраля, 2019 Поделиться Опубликовано 3 февраля, 2019 В 31.01.2019 в 15:23, gonzales сказал: Доброго времени суток! Сменил телефон и перестали приходить пуши при свернутой программе в андроид 8. На 5-ом все работает. Подозреваю, что не стартует сервис {$IF defined(ANDROID)} FPushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.GCM); FPushService.AppProps[TPushService.TAppPropNames.GCMAppID] := FAndroidServerKey; {$ENDIF} Может кто подскажет, в какую сторону копать? Заранее спасибо! Возможно вы стали счастливым обладателем телефона Asus, или еще какого то производителя любящего решать за пользователя. Посмотрите в настройках андроида (настройки Приложения и Оповещения) - возможно там отключено оповещение о приходящих пушах. Только вот неделю назад разбирались с пользователем с такой же проблемой. Цитата Ссылка на комментарий
0 gonzales Опубликовано 5 февраля, 2019 Автор Поделиться Опубликовано 5 февраля, 2019 В 03.02.2019 в 14:33, Евгений Корепов сказал: Возможно вы стали счастливым обладателем телефона Asus, или еще какого то производителя любящего решать за пользователя. Посмотрите в настройках андроида (настройки Приложения и Оповещения) - возможно там отключено оповещение о приходящих пушах. Только вот неделю назад разбирались с пользователем с такой же проблемой. К сожалению нет, или я не знаю куда копать. В настройках телефона все уведомления включены, режим энергосбережения выключил, в общем сделал все рекомендации, что нашел в инете. Причем, в открытое приложение уведомления приходят. Протестировал еще на телефоне с 7-ым андроидом - все работает. Цитата Ссылка на комментарий
0 gonzales Опубликовано 5 февраля, 2019 Автор Поделиться Опубликовано 5 февраля, 2019 Нашел вот такую статейку, но не пойму, то это или нет https://stackoverflow.com/questions/43093260/notification-not-showing-in-oreo Цитата Ссылка на комментарий
0 gonzales Опубликовано 5 февраля, 2019 Автор Поделиться Опубликовано 5 февраля, 2019 Нашел причину, в API 26 формирование уведомления строится по другому. https://startandroid.ru/ru/uroki/vse-uroki-spiskom/515-urok-190-notifications-kanaly.html Перевел приложение на API 25 и все заработало как надо. Подозреваю, что для работы пушей в API 26 нужно обновить саму делфу. (у меня сейчас берлин) Ingalime 1 Цитата Ссылка на комментарий
0 gonzales Опубликовано 6 февраля, 2019 Автор Поделиться Опубликовано 6 февраля, 2019 вот засада. Google play требует api не ниже 26. Какой-то замкнутый круг((( Цитата Ссылка на комментарий
0 Евгений Корепов Опубликовано 6 февраля, 2019 Поделиться Опубликовано 6 февраля, 2019 3 часа назад, gonzales сказал: вот засада. Google play требует api не ниже 26. Какой-то замкнутый круг((( Этот замкнутый круг разорвали в Rio, переходите на последнюю версию среды и пуши будут работать. Ingalime и flydev 2 Цитата Ссылка на комментарий
0 gonzales Опубликовано 7 февраля, 2019 Автор Поделиться Опубликовано 7 февраля, 2019 10 часов назад, Евгений Корепов сказал: Этот замкнутый круг разорвали в Rio, переходите на последнюю версию среды и пуши будут работать. Спасибо. Попробую на досуге Цитата Ссылка на комментарий
0 gonzales Опубликовано 15 февраля, 2019 Автор Поделиться Опубликовано 15 февраля, 2019 В 07.02.2019 в 00:04, Евгений Корепов сказал: Этот замкнутый круг разорвали в Rio, переходите на последнюю версию среды и пуши будут работать. А не подскажете случайно, как работать с пушами в 10.3. Код, который работал на 10.1 тут не работает. Нужно ли получить разрешение для работы с уведомлениями? Цитата Ссылка на комментарий
0 Евгений Корепов Опубликовано 15 февраля, 2019 Поделиться Опубликовано 15 февраля, 2019 4 часа назад, gonzales сказал: А не подскажете случайно, как работать с пушами в 10.3. Код, который работал на 10.1 тут не работает. Нужно ли получить разрешение для работы с уведомлениями? Вроде все работает. Разрешений не нужно никаких вообще. До этого ошибочно требовало доступ к учетной записи - пофиксили. Код вроде остался прежним, вот кусок из живого проекта: procedure TFormMain.InitPushService; begin TTask.Run( procedure Var ADeviceID, ADeviceToken : String; begin FPushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.GCM); FPushService.AppProps[TPushService.TAppPropNames.GCMAppID] := ConstGCMAppID; if Assigned(FPushService) then begin FPushServiceConnection := TPushServiceConnection.Create(FPushService); FPushServiceConnection.OnChange := OnPushServiceConnectionChange; FPushServiceConnection.OnReceiveNotification := OnReceivePushNotificationEvent; FPushServiceConnection.Active := True; ADeviceID := FPushService.DeviceIDValue[TPushService.TDeviceIDNames.DeviceID]; ADeviceToken := FPushService.DeviceTokenValue[TPushService.TDeviceTokenNames.DeviceToken]; FSettings.Flags.PushServiceInited:=True; TThread.Synchronize(TThread.CurrentThread, procedure () begin FNetwork.DeviceID:=ADeviceID; FNetwork.DeviceToken:=ADeviceToken; FNetwork.SendFCMRegistration(); // ?????????????????????????????? Log('DeviceID: ' + FNetwork.DeviceID); Log('DeviceToken: ' + FNetwork.DeviceToken); end); end; end ); end; procedure TFormMain.OnPushServiceConnectionChange(Sender: TObject; AChange: TPushService.TChanges); begin TThread.Synchronize(TThread.CurrentThread, procedure () begin if TPushService.TChange.DeviceToken in AChange then begin if Assigned(FNetwork) then begin FNetwork.DeviceID := FPushService.DeviceIDValue[TPushService.TDeviceIDNames.DeviceID]; FNetwork.DeviceToken := FPushService.DeviceTokenValue[TPushService.TDeviceTokenNames.DeviceToken]; Log('DeviceID: ' + FNetwork.DeviceID); Log('DeviceToken: ' + FNetwork.DeviceToken); FNetwork.SendFCMRegistration(); end; end; end ); end; procedure TFormMain.OnReceivePushNotificationEvent(Sender: TObject; const ANotification: TPushServiceNotification); var AMessageSection : String; begin if Assigned(ANotification.Json) then begin Log('Push Message Json'); Log(ANotification.Json.ToString); if ANotification.Json.TryGetValue('message_section', AMessageSection) then begin if AMessageSection.Equals('support') then SetActiveTab(ConstSectionSupport); if AMessageSection.Equals('news') then SetActiveTab(ConstSectionNews); if AMessageSection.Equals('info') then SetActiveTab(ConstSectionInfo); if AMessageSection.Equals('services') then SetActiveTab(ConstSectionServices); end else if FSettings.CurrentSection <> ConstSectionSupport then SetActiveTab(ConstSectionSupport) else WebBrowserCallJS(TCallJS.SupportLoadContent); PlaySoundEffects(1); end; end; procedure TFormMain.CheckStartupNotifications(); var CurNotification : TPushServiceNotification; begin if Length(FPushService.StartupNotifications) > 0 then for CurNotification in FPushService.StartupNotifications do if Assigned(CurNotification) then OnReceivePushNotificationEvent(Self, CurNotification); NotificationCenter.CancelAll; end; Метод FNetwork.SendFCMRegistration() отсылает регистрацию на мой сервер. В методе проверяется получение регистрации и факт отсылки (он может вызываться несколько раз у меня) Ingalime и Alex Bozhko 2 Цитата Ссылка на комментарий
0 gonzales Опубликовано 18 февраля, 2019 Автор Поделиться Опубликовано 18 февраля, 2019 спасибо большое! буду проверять! Цитата Ссылка на комментарий
0 Alex Bozhko Опубликовано 5 марта, 2019 Поделиться Опубликовано 5 марта, 2019 Подскажите, а есть ли возможность при получении пуша запустить программу, если она в этот момент закрыта? Раньше для этого правились исходники и пересобирался classes.dex. В Rio что-то не получается это сделать... Цитата Ссылка на комментарий
Вопрос
gonzales
Доброго времени суток!
Сменил телефон и перестали приходить пуши при свернутой программе в андроид 8. На 5-ом все работает.
Подозреваю, что не стартует сервис
{$IF defined(ANDROID)} FPushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.GCM); FPushService.AppProps[TPushService.TAppPropNames.GCMAppID] := FAndroidServerKey; {$ENDIF}
Может кто подскажет, в какую сторону копать?
Заранее спасибо!
Ссылка на комментарий
11 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.