我來自Unity3D開發的世界,我對Android開發非常陌生。我正在嘗試爲Unity Android創建一個NFC插件。我跟着由Twinsprite提供的this guide關於如何通過擴展UnityPlayerActivity
來創建插件。使用Twinsrpite的代碼,這個插件可以讓Android的NFC前臺調度系統在我的應用程序處於前臺時捕獲NFC Intent。有沒有一種方法讓片段接收意向數據而不需要通過活動?
在我的研究中,我發現擴展UnityPlayerActivity
是因爲它會在Unity項目的其他插件中引起很多依賴問題而引起不滿。從那裏我決定,我的插件可以擴展Fragment
類,就像其他Unity Android插件一樣。這樣我的無頭版Fragment
插件可以利用片段生命週期的回調而不會導致Unity中的問題。但是,在修改代碼以在Fragment
上工作時,我遇到了一個問題。 Twinsprite的代碼依賴於Activity
的onNewIntent
回調,該回調將Intent
的數據傳遞給解析NFC消息的處理程序方法。由於我正在編寫代碼以使用Fragment
而不是Activity
,因此我無法再訪問onNewIntent
回調,因此我無法再調用處理程序方法。如上所述,我想從延長UnityPlayerActivity
所以我離開了這個問題望而卻步:
如何我可以從我Fragment
插件中收到我的NFC Intent
數據不延長UnityPlayerActivity
?
碎片必須託管在一個活動中。他們不是獨立的組件 – Kuffs
@Kuffs目前我沒有代碼,但我使用FragmentManager類將自己的Fragment添加到UnityPlayerActivity的狀態。我通過在Unity中調用一個靜態方法來創建我的插件對象。 – Esper