2016-06-10 87 views
1

要使用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?

謝謝!

+0

在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)消息。 –

+0

請參閱Embarcadero的[AndroidIntents](https://sourceforge.net/p/radstudiodemos/code/HEAD/tree/branches/RADStudio_Berlin/Object%20Pascal/Mobile%20Snippets/AndroidIntents/)示例。 –

+1

順便說一句,沒有XE10!從你的腦海中解脫出來。 10.0西雅圖,10.1柏林等等。你實際使用了哪一個? –

回答

相關問題