要使用USB設備(在具有USB主機的Android設備上),必須使用BroadcastReceiver。 我找到了演示(https://github.com/freeonterminate/delphi/tree/master/BroadcastReceiver)。我已經在Delphi XE10上測試過了。浪費了大量的時間讓它工作,直到我發現該演示在XE7上運行,而在XE10上運行。FMXBroadcastReceiver(Android)在Delphi 10西雅圖中被破解了嗎?自XE7以來發生了什麼變化?
在JFMXBroadcastReceiver創建(或接近)期間發生「接口不支持」錯誤。
爲了演示這個問題,我創建了一個全新的簡單項目https://github.com/ashumkin/Delphi-Android-BroadcastSample。 它在XE7中工作(按「註冊」按鈕來創建一個廣播接收器,捕獲和記錄(見adb logcat)屏幕鎖定/解鎖,但它在XE10中不起作用 - 「接口不支持」發生 在logcat中,我可以看到
W/dalvikvm(31735): dvmFindClassByName rejecting 'com/embarcadero/firemonkey/broadcast/FMXBroadcastReceiverListener'
W/dalvikvm(31735): dvmFindClassByName rejecting 'com/embarcadero/firemonkey/broadcast/FMXBroadcastReceiver'
(但他們存在於XE7內置應用程序的logcat)
我試圖刪除的AndroidManifest.template.xml
XE7版本,創建.dproj文件中XE10, - 沒有什麼幫助!
WTF?
謝謝!
在10.1柏林(不是10.0西雅圖),您可以使用['IFMXApplicationEventService.SetApplicationEventHandler()'](http://docwiki.embarcadero.com/Libraries/en/FMX.Platform)接收廣播的Android'Intent'。 (TMessageReceivedNotification)](http:// docwiki .embarcadero.com/RADStudio/en/List_of_FireMonkey_Message_Types#FMX.Platform.TMessageReceivedNotification.Android)消息。 –
請參閱Embarcadero的[AndroidIntents](https://sourceforge.net/p/radstudiodemos/code/HEAD/tree/branches/RADStudio_Berlin/Object%20Pascal/Mobile%20Snippets/AndroidIntents/)示例。 –
順便說一句,沒有XE10!從你的腦海中解脫出來。 10.0西雅圖,10.1柏林等等。你實際使用了哪一個? –