要使用 USB 设备(在具有 USB 主机的 Android 设备上),必须使用 BroadcastReceiver . 我找到了一个演示(https://github.com/freeonterminate/delphi/tree/master/BroadcastReceiver)。我已经在 Delphi XE10 上测试过了。浪费了很多时间让它工作,直到我发现演示可以在 XE7 上工作但不能在 XE10 上工作。
在创建 JFMXBroadcastReceiver 期间(或附近)出现“不支持接口(interface)”错误。
为了演示这个问题,我创建了一个全新的简单项目 https://github.com/ashumkin/Delphi-Android-BroadcastSample . 它在 XE7 中工作(按“注册”按钮创建一个广播接收器,它捕获和记录(参见 adb logcat)屏幕锁定/解锁。但它在 XE10 中不起作用 - 出现“不支持的接口(interface)”。 在 logcat 中我可以看到
W/dalvikvm(31735): dvmFindClassByName rejecting 'com/embarcadero/firemonkey/broadcast/FMXBroadcastReceiverListener'
W/dalvikvm(31735): dvmFindClassByName rejecting 'com/embarcadero/firemonkey/broadcast/FMXBroadcastReceiver'
(但它们存在于 XE7 构建的应用程序的 logcat 中)
我试图删除 XE7 版本的 AndroidManifest.template.xml
,在 XE10 中创建了 .dproj 文件,- 没有任何帮助!
什么鬼?
谢谢!
最佳答案
https://github.com/barisatalay/delphi-android-broadcast-receiver-component适用于 Delphi 10! 与https://github.com/freeonterminate/delphi/tree/master/BroadcastReceiver有细节差异,但正如我所看到的,对于工作来说,这很重要。
关于android - FMXBroadcastReceiver (Android) 在 Delphi 10 Seattle 中损坏了吗?自 XE7 以来发生了什么变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37758457/