Реализация уведомления для Android 26 с использованием delphi

#android #delphi #delphi-10.1-berlin

#Android #delphi #delphi-10.1-берлин

Вопрос:

Я использую Delphi 10.1 для разработки приложения для Android, и я использовал образец Delphi для реализации Android 26 API, и когда я использовал уведомление, оно не отображается. А также я попробовал с примером уведомления. Но это не работает. Пожалуйста, помогите мне реализовать уведомление, поскольку мне нужно реализовать это из служб Android.

 procedure TForm1.ImmediateNotification; 
var 
LNotification: TNotification; 
begin 
LNotification.EnableSound := False;
 LNotification.Title := 'Immediate Notification';
 LNotification.Subtitle := 'Subtitles are cool';
 LNotification.AlertBody := 'This is an immediate notification'; 
FNotifications.PresentNotification(LNotification); 
end;
  

Комментарии:

1. Не могли бы вы указать свой код уведомления?

2. ДА. Я пробовал как с system.notification, так и с Dw.notification

3. Нет, нет, вы не понимаете, я бы хотел, чтобы вы показали мне свой код, разместили функцию уведомления в вашем описании.

4. Статья по первой ссылке, которую вы дали, была заменена этой: delphiworlds.com/2018/06 / … , однако статья и, в частности, изменения в системе. Android. Уведомления предназначены только для Delphi 10.2.3. Вам нужно будет разработать соответствующие изменения для Delphi 10.1. Возможно, было бы проще перейти на Delphi 10.3.1

5. docwiki.embarcadero.com/CodeExamples/Rio/en/… Я использовал это, но это не работает.

Ответ №1:

Видя, что вы не реагируете, я действую по наитию, я разместил для вас свой код уведомления, чтобы реализовать его с помощью сервиса Android, вы должны проверить: Это из DocWiki

 procedure TF_SS_MAIN.NotifyAndroid(text: string);
var
   Notification: TNotification;
begin
{verify if the service is actually supported}
if NotificationCenter1.Supported then
   begin
   Notification := NotificationCenter1.CreateNotification;
   Notification.Name := 'Notif Name';
   Notification.AlertBody := text;
   Notification.FireDate := Now;

   {Send notification in Notification Center}
   NotificationCenter1.ScheduleNotification(Notification);
   end;
end;
  

Комментарии:

1. Это не сработает при настройке API 26 с использованием Delphi 10.1, как сказал разработчик, который они используют.

2. @DaveNottage У меня есть Delphi 10.1 Berlin, и я использовал метод для таргетинга на API26 , и у меня это работает. Использование метода для настройки API 26 вызвало у меня некоторые проблемы, например, камера не работает на Android 6 , но в целом она работает

3. Невозможно использовать Delphi 10.1 Berlin без изменения исходного кода, чтобы уведомление отображалось при установке targetSdkVersion в 26 на устройстве с Android 8 или выше. Ему необходимо назначить канал (чего не происходит с Delphi 10.1), иначе он просто не будет отображаться. developer.android.com/training/notify-user/channels