在華爲榮耀的盒子驗證openni的程序,發現orbbec的3d攝像頭一直沒法使用,一直卡在 設備找不到的提示。 開始從下面2個方面驗證:1.驗證openni的自己自帶的SimpleRead程序,看看是否正常讀取到設備信息和depth 圖。2.驗證Android層usb權限控制問題。java
通過驗證發現openni自帶的c++的可執行程序,能夠正常讀取到設備信息和depth 圖。由此推測 orbbec 3d的驅動和openni的這塊部分沒有什麼問題。問題可能出在Android層的usb權限和獲取設備信息這塊。
android
UsbManager usbManager=(UsbManager)getSystemService(Context.USB_SERVICE); HashMap list=usbManager.getDeviceList(); Log.v("xcy","list size"+list.size());
通過驗證發現經過UsbManager獲取devicelist一直返回空。經過搜索找到下面的解決方案。c++
用UsbManager.getDeviceList獲取不到USB設備信息,須要進行以下處理才能獲取到USB設備信息spa
To enable USB host API support you should add a file named
android.hardware.usb.host.xmland containing the following lines:3d
<permissions> <feature name="android.hardware.usb.host"/></permissions>
into foldercode
/system/etc/permissions
in that folder find file namedorm
handheld_core_hardware.xml or tablet_core_hardware.xml
and addxml
<feature name="android.hardware.usb.host"/>
修改文件後push到系統中,重啓設備後。就可使用了。get