在华为荣耀的盒子验证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