当前位置: 代码迷 >> Android >> Android Usb Host 有关问题求教育(学费100分)
  详细解决方案

Android Usb Host 有关问题求教育(学费100分)

热度:101   发布时间:2016-05-01 10:14:43.0
Android Usb Host 问题求教育(学费100分)
本帖最后由 SEH_CRACKER 于 2013-07-04 11:31:55 编辑
实现一个Android Host 操作 Android phone的程序

代码是Android Sdk中的例子AdbTest

		mApplicationContext = this.getApplicationContext();
if (mApplicationContext.getPackageManager().hasSystemFeature("android.hardware.usb.host")) {
     Log.d("Shit", ">>>> FOUND !");
     }


执行结果,输出 Shit >>>> FOUND,支持usb host
        for (UsbDevice device :  mManager.getDeviceList().values()) {
            UsbInterface intf = findAdbInterface(device);
            if (setAdbInterface(device, intf)) {
                break;
            }
        }


获取到usb设备,但在setAdbInterface函数中有问题,
	        if(mManager.hasPermission(device) == true){
         log("has access");
         }else{
         mManager.requestPermission(device, mPermissionIntent);
         }
        if (device != null && intf != null) {
            UsbDeviceConnection connection = mManager.openDevice(device);
            if (connection != null) {
                log("open succeeded");


mManager.requestPermission(device, mPermissionIntent);  //执行,后设备没有弹出窗口
UsbDeviceConnection connection = mManager.openDevice(device); //执行失败,报错
具体错误信息:
01-01 02:38:46.468: E/UsbManager(4043): exception in UsbManager.openDevice
01-01 02:38:46.468: E/UsbManager(4043): java.lang.SecurityException: User has not given permission to device UsbDevice[mName=/dev/bus/usb/001/003,mVendorId=1060,mProductId=60416,mClass=255,mSubclass=0,mProtocol=1,mInterfaces=[Landroid.hardware.usb.UsbInterface;@4146c080]
  相关解决方案