Вопрос

Доброго дня!

Решил я побороть проблемку single-line в нотификациях (в частности push, т.к. локальные можно выводить в несколько строк)

Почитал в интернете, набрел на такие статьи 

судя по ним нужно просто подменить библиотеку com.embarcadero.gcm.notifications.GCMIntentService на измененную как статье выше

Вроде плёвое дело, но где найти эту библиотеку и чем скомпилировать исходник?

Если у кого есть познания в этой области, подскажите в какую сторону рыть. Нам ведь всем такое пригодится:)

 

Screenshot_20160705-111159.pngScreenshot_20160708-151511.png

fmx.zip (Seattle, Berlin)                                                                     LocalMultiline.zip (Berlin)

https://github.com/rzaripov1990/Multiline-Push-and-Local-Notifications

Изменено пользователем ZuBy
Поправил заголовок
Rusland, zairkz, master webs и 1 другому понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

51 ответ на этот вопрос

  • 0

Пример реализации Local Present Notification без дополнительных DEXED JAR.

"MultiLine Notification.zip"

TO-DO: Необходимо доработать пример для работы с ScheduleNotification, в приложении есть все ссылки с примерами.

Screenshot_20160708-140051.png

 

Изменено пользователем Pax Beach
Rusland и Равиль Зарипов (ZuBy) понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
2 минуты назад, Pax Beach сказал:

Пример реализации Local Present Notification без дополнительных JAR.DEX.

"MultiLine Notification.zip"

TO-DO: Необходимо доработать пример для работы с ScheduleNotification, в приложении есть все ссылки с примерами.

не успели) я это уже выложил

zairkz и Pax Beach понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
Только что, ZuBy сказал:

не успели) я это уже выложил

Просто такое сочное обсуждение, поэтому тоже решил потратить время, разобраться =)

 

Равиль Зарипов (ZuBy) понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

В X8, к сожалению, не работает :-( Приложение при запуске мгновенно закрывается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
7 часов назад, Евгений Корепов сказал:

В X8, к сожалению, не работает :-( Приложение при запуске мгновенно закрывается.

Если речь про мой пример, там измененные модули System.Android.Notification.pas и Androidapi.JNI.Support.pas лежат от Berlin 10.1, увидите комментарии к добавленным строчкам "// PaxBeach".

Для XE8 нужно, наверное, модули от XE8 править, просто добавить эти строки в аналогичные модули.

Если приложение при запуске будет падать, это уже не в приложении дело, а в совместимости настроек SDK и платформы на устройстве.

 

Евгений Корепов понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Все сделал как описал, скомпилировался на ура, но при попытки установить файл выдал вот такую ошибку:

Unable to create process: Unable to install '<APK file>'. Failure [INSTALL_PARSE_FAILED_MANIFEST_MALFORMED]

Может надо подменить какой нибудь файл  classes.dex ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Коллеги, подскажите, как показать локальные уведомления с кнопками действий?

Я хочу иметь возможность показывать в шторке сообщение с кнопками "Удалить", "Просмотреть", Ответить", кнопки вызывают разные действия.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
4 часа назад, Pax Beach сказал:

Коллеги, подскажите, как показать локальные уведомления с кнопками действий?

Я хочу иметь возможность показывать в шторке сообщение с кнопками "Удалить", "Просмотреть", Ответить", кнопки вызывают разные действия.

 

нужно дописать такой функционал, делается это в NotificationCompat.Builder addAction
документация

Rusland понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
42 минуты назад, ZuBy сказал:

нужно дописать такой функционал, делается это в NotificationCompat.Builder addAction
документация

Спасибо!

В пору платный компонент делать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
1 минуту назад, Pax Beach сказал:

В пору платный компонент делать.

а слабо бесплатно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
3 минуты назад, ZuBy сказал:

а слабо бесплатно?

Для участников форума с минимальной репутацией само собой бесплатно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
1 минуту назад, Pax Beach сказал:

Для участников форума с минимальной репутацией само собой бесплатно.

оффтоп: в чем смысл, на форуме не по инвайту регистрируются. сделаю тест-акк и заберу бесплатно...

будут проблемы в реалиации пишите, возможно решим их вместе

zairkz и Rusland понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

:ph34r: для обезьян только бесплатно  сам активно на фрилансе строчу приложения  на делфях чтоб у нас работа была ))) чтоб если нужны будут доработки  искали имено делфиста обезьянщика )

Rusland, rareMax, Евгений Корепов и 2 другим понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
4 часа назад, ZuBy сказал:

оффтоп: в чем смысл, на форуме не по инвайту регистрируются. сделаю тест-акк и заберу бесплатно...

будут проблемы в реалиации пишите, возможно решим их вместе

Я имею ввиду, не жалко сделать бесплатно для участников форума,у которых есть репутация, которые сами вклад в развитие проекта делают. 

Равиль Зарипов (ZuBy) понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

интерфейс объявлен в Androidapi.JNI.Support.pas

оба файла нужно транслировать

Изменено пользователем ZuBy
Kitty понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Обычно для добавление *.pas файла в С++ Builder достаточно сделать шаги.
1. Запустить полную версию RAD.
2. Открыть в полной версии RAD проект С++.
3. Добавить в проект нужный PAS файл.
4. Затем File->Use unit и выбираем наш PAS файл.
После компиляции получаем h файл.
Я пробую сделать это с файлом System.Android.Notification.pas из архива этого топика LocalMultiline.zip
Получаю ошибки и компилятор останавливается в файле на строке:
BigTextStyle: JNotificationCompat_BigTextStyle; // ZuBy

Как справить? Кто нибудь из гуру может помочь как иметь мультилайн в С++ Builder?
Спасибо?

[DCC Error] System.Android.Notification.pas(175): E2003 Undeclared identifier: 'JNotificationCompat_BigTextStyle'
[DCC Error] System.Android.Notification.pas(182): E2003 Undeclared identifier: 'TJNotificationCompat_BigTextStyle'
[DCC Error] System.Android.Notification.pas(182): E2066 Missing operator or semicolon
[DCC Error] System.Android.Notification.pas(183): E2066 Missing operator or semicolon
[DCC Fatal Error] pasall.tmp(3): F2063 Could not compile used unit 'System.Android.Notification.pas'

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
Цитата

интерфейс объявлен в Androidapi.JNI.Support.pas

оба файла нужно транслировать

После добавления Androidapi.JNI.Support.pas компиляция прошла успешно....

Равиль Зарипов (ZuBy) понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Правда в Project Meneger никаких новых файлов h не появилось... Но все компилируется без проблем. Буду сейчас тестить на реальном устройстве мультилайн для С++. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
1 минуту назад, Kitty сказал:

Правда в Project Meneger никаких новых файлов h не появилось... Но все компилируется без проблем. Буду сейчас тестить на реальном устройстве мультилайн для С++. :)

И не появятся. Студия использует откомпилированную в составе библиотеку RTL.

 

Kitty понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
1 минуту назад, Kitty сказал:

Мультилайн успешно заработал и в С++ Buider Berlin. Счастье наступило. :) Спасибо!

Можете выложить хидеры для плюсов?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 1

Все мои шаги такие:

1. Добавить в проект Androidapi.JNI.Support.pas и System.Android.Notification.pas из архива этой темы.

2 . Далее в меню File->Use Unit указать System.Android.Notification.pas. После этого в коде появляется строка:  #include "System.hpp"

Все. :)

Изменено пользователем Kitty
Pax Beach и Равиль Зарипов (ZuBy) понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

С чем может быть связано, что не с того ни с сего перестал работать перенос строк в пуше в андроиде?
***method=sendPush&title=Микрос&text=Текст текст текст текст текст текст текст
Причем вчера работало как надо.
Также периодически игнорируется заголовок и пишется вместо него название приложения. На что обратить внимание? Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Это какая-то не стабильность... Сейчас пришло как положено с разбиением строк и правильным заголовком. Никаких изменений в коде не делалось...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Теперь вроде понятно про разбиение строк, помогло наблюдение... Переноса строк нет если в шторке присутствуют уведомления от других приложений. Если уведомление в штока одно, то есть перенос строк. Это на моём устройстве.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Похожие публикации

    • Автор: Rusland
      Приложение свернуто или закрыто.
      Отправляю один пуш, на телефоне в шторке появляется уведомление.
      Отправляю еще один, появляется второе уведомление и так далее. Сколько пушей, столько и уведомлений.
      Как сделать чтобы все уведомления собирались в одном уведомлении в шторке? (как делают telegram, whatsapp и т. п.)
    • Автор: Евгений Корепов
      Наткнулся тут на изящную штуку для приложения с PUSH уведомлениями на Android и Ios. Один объект, все сам делает.
      Внедрил в одно боевое приложение с 100+ тысячами установок, полет нормальный.
      Описание тут https://delphiworlds.com/2017/04/firebase-cloud-messaging-android-ios/
      Исходный код с примером на гитхабе https://github.com/DelphiWorlds/PushClient
      Использование максимально простое:
      uses DW.PushClient; .... private FPushClient: TPushClient; procedure PushClientChangeHandler(Sender: TObject; AChange: TPushService.TChanges); procedure PushClientReceiveNotificationHandler(Sender: TObject; const ANotification: TPushServiceNotification); .... procedure TFormMain.InitPushService; begin FPushClient := TPushClient.Create; FPushClient.GCMAppID := ConstGCMAppID; FPushClient.ServerKey := ''; FPushClient.BundleID := ''; FPushClient.UseSandbox := Debug; // Change this to False for production use! FPushClient.OnChange := PushClientChangeHandler; FPushClient.OnReceiveNotification := PushClientReceiveNotificationHandler; try FPushClient.Active := True; except SendError('FPushClient.Active Exception'); end; end; procedure TFormMain.PushClientChangeHandler(Sender: TObject; AChange: TPushService.TChanges); begin if TPushService.TChange.DeviceToken in AChange then begin HDevicePushParams.DeviceID:=FPushClient.DeviceID; HDevicePushParams.DeviceToken:=FPushClient.DeviceToken; GetHTTP(CommandRegisterFCM); // Memo1.Lines.Add('DeviceID = ' + FPushClient.DeviceID); // Memo1.Lines.Add('DeviceToken = ' + FPushClient.DeviceToken); end; end; procedure TFormMain.PushClientReceiveNotificationHandler(Sender: TObject; const ANotification: TPushServiceNotification); begin // ShowMessage(ANotification.DataObject.ToString... end; Правда руки не дошли разобраться для чего ему 
        FPushClient.ServerKey := '';
        FPushClient.BundleID := '';
      Но и без этого работает.
       
    • Автор: Равиль Зарипов (ZuBy)
      Ссылка: http://blog.rzaripov.kz/2017/02/firebase-android-ios-2.html
      Автор: Зарипов Равиль @ZuBy
      Описание: Настройка пуш уведомлении через сервис Firebase для ANDROID и IOS [Часть 2]
      В предыдущей  части , я рассказывал как сделать настройку пуш уведомления в консоли Firebase, в этой я покажу код на Delphi и серверную часть на PHP
      https://github.com/rzaripov1990/PUSHTestFCM
    • Автор: Равиль Зарипов (ZuBy)
      Ссылка: http://blog.rzaripov.kz/2017/02/firebase-android-ios.html
      Автор: Зарипов Равиль @ZuBy
      Описание: Настройка пуш уведомлении через сервис Firebase для ANDROID и IOS
    • Автор: dmokrushin123
      На устройство с IOS сообщения приходят и через Kinvey и через FCM (Firebase Cloud Messaging).
      На Android возвращается Token, сами уведомления НЕ приходят. 
       
       
       
       
       
       
    • Автор: Кривяков Виталий
      Добрый день!
      Возникла необходимость отправлять уведомления в стороннюю программу. Да не абы как через сертификаты, о чем много тут статей, а через токены.

      Немного руководства от яблока.
      Нашел библиотеку для работы с JWT
      https://github.com/paolo-rossi/delphi-jose-jwt
      Но вот как подписывать токен алгоритмом  ECDSA и какие сертификаты использовать не могу понять. Кто занимался похожем вопросом? Поделитесь знаниями.
      Спасибо
    • Автор: ENERGY
      Привет.
      Про программировании в Windows, использовать Windows API просто -
      1. Открываем MSDN, находим нужную функцию.  Смотрим из какой она DLL.
      2. Затем портируем описание в Delphi,  LoadLibrary и вызов нужной фукнции.
       
      А вот как это сделать на Андроиде, я так и не понял. Я понял что есть обертки, но нужно научиться это делать самому. Кстати многие вопросы и существует здесь из за того, что народу не понятно как это сделать. Нигде нету толкового объяснения, с примером.
      Например я нашел статью где описывается обертка в Wifi, подскажите пожалуйста как сделать точно так же  пошагово.
      Например для класса WifiInfo
      1. https://developer.android.com/reference/android/net/wifi/WifiInfo.html читаем документацию.
      2. Что делать дальше?
    • Автор: voytalexey
      Может кто-нибудь подсказать как использовать OnCompletionListener в работе с нативными объектами Android?
      Мне надо произвести простейшие действия по окончании проигрывания видеофайла. Для этого предназначена коллбек процедура OnCompletionListener. Но ни одного примера на Дельфи я в Гугле и Яндексе не нашел. А те примеры что нашел затрудняюсь перевести на Дельфи.
      Наиболее часто встречается что-то типа такого:
      mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mediaPlayer) { Toast.makeText(MainActivity.this, "I'm Finished", Toast.LENGTH_SHORT); } или такое:
      mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { public void onCompletion(MediaPlayer mp) { finish(); // finish current activity } }); Возможно ли подобную конструкцию реализовать на дельфийском паскале?
    • Автор: Brovin Yaroslav
      Автор: FMXExpress
      Тип лицензии: Open Source
      Ссылка на проект android-object-pascal-wrapper (OpenSource): https://github.com/FMXExpress/android-object-pascal-wrapper
      Скачать: ZIP
       
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу