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

В Delphi XE10 перестал работать FMXBroadcastReceiver (Android). Что изменилось со времён XE7?


Alexey Shumkin

Вопрос

Для работы с USB-устройствами (на девайсах с USB-хостом) нужно использовать BroadcastReceiver.
Нашёл пример работы с ними (https://github.com/freeonterminate/delphi/tree/master/BroadcastReceiver). 

Проверял на XE10. Долго мучался с проверкой, пока не выяснилось, что под XE7 работает, а под XE10 - нет.

Выдаёт ошибку "Interface not supported" в момент создания JFMXBroadcastReceiver (или около того, точно непонятно).

Для демонстрации я создал отдельный простой проект - https://github.com/ashumkin/Delphi-Android-BroadcastSample.
В XE7 он работает (при нажатии на кнопку Register вешается слушатель, который ловит и выводит в лог (см. adb logcat) события включения/выключения экрана). А в XE10 - выдаёт вышеупомянутую ошибку "Interface not supported".
В логах есть строки
W/dalvikvm(31735): dvmFindClassByName rejecting 'com/embarcadero/firemonkey/broadcast/FMXBroadcastReceiverListener'
W/dalvikvm(31735): dvmFindClassByName rejecting 'com/embarcadero/firemonkey/broadcast/FMXBroadcastReceiver'
(но они есть и при запуске приложения, собранного в XE7)

Пробовал по-разному: и удалял AndroidManifest.template.xml от XE7, и пересоздавал .dproj в XE10, - пофик.
В чём засада?

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

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

  • 0

Да, только в файле BroadcastSample.dproj почему то есть пути например к c:\program files\embarcadero\studio\15.0\lib\android\debug\classes.dex это ничего? 

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

Ха! https://github.com/barisatalay/delphi-android-broadcast-receiver-component работает в Delphi 10!
Хоть он и сильно похож на упомянутый мной https://github.com/freeonterminate/delphi/tree/master/BroadcastReceiver, но, видимо, дьявол где-то в деталях.

 

Изменено пользователем Alexey Shumkin
исправлена первая ссылка
Ссылка на комментарий
  • 0

Ссылка на barisatalay указан битая. Не открывает. Вот правильная:  https://github.com/barisatalay/delphi-android-broadcast-receiver-component

Кстати после компиляции под Berlin и запуском на 4 Android телефон у меня перезагрузился.

 

Между прочим начиная с Berlin - появился пример Samples\Object Pascal\Mobile Snippets\AndroidIntents\ 

 

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

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

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

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

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

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

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

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

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

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