RK3288 Android 7.1 調試 USB MIDI

 

1、接入usb midi 設備發現並不能獲取服務

 MidiManager midiManager =  (MidiManager)getSystemService(Context.MIDI_SERVICE);

獲取到的midiMangager 是空的。跟蹤源碼發現 frameworks/base/services/java/com/android/server/SystemServer.java 

並沒有打開相關服務 打開相關服

PackageManager本身就是個抽象類,裏面的hasSystemFeature方法就是個尚未實現的抽象方法。接下來尋找實現的該方法的派生類 找到 PackageManger 的實現類 frameworks/base/core/java/android/app/ApplicationPackageManager.java

 IPackageManager 的類frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java

mAvailableFeature 是在SystemConfig 的一個成員變量

/android/frameworks/base/services/core/java/com/android/server/SystemConfig.java

在SystemConfig的構造函數中,發現mAvailableFeature其實是讀取的/system/etc/permissions/ 裏面的xml配置文件

現在我們就要看看這個xml配置文件是在哪裏被複制過去的。

在項目的nfc.mk文件中,我似乎找到了複製文件的蹤影

於是乎我們在device/rockchip/rk3288/device.mk 添加

PRODUCT_COPY_FILES +=frameworks/native/data/etc/android.software.midi.xml:system/etc/permissions/android.software.midi.xml

 重新打包燒寫固件,大功告成

2、不能進行通信 檢測接入設備是否有生成節點,rk3288 usb 默認回有節點

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章