2015-04-07 108 views
0

我正在使用Android USB主机模式。我有一个USB设备(麦克风)通过OTG电缆连接到主机模式下的Android手机。 根据开发者网站,我遵循了建立连接和发送命令的步骤。 USB Host无法在Android USB主机模式下将设备静音和取消静音

下面是我用来使用ControlTransfer静音和取消静音设备(麦克风)的命令,但我无法静音和取消静音设备。 我使用0x01来静音设备,0x00取消静音。

   byte[] buf = new byte[1]; 
       buf[0]= 0x01; //for mute 

       int usbResult = usbDeviceConnection.controlTransfer(
         0x21, // requestType 
         0x01, // request ID for this transaction 
         0x0100, // value 
         0x0600, // index 
         buf, // buffer 
         buf.length, // length 
         0); // timeout 

ControlTransfer方法returing -1值作为结果(usbresult),这意味着不成功的。有没有人有这个想法。

感谢

回答

0

您应该使用'claimInterface()方法来访问专门针对的UsbInterface像下面。

if (!usbDeviceConnection.claimInterface(usbInterface, true)) { 
     return false; 
    } 

    // your controlTransfer code 
+0

是在发送任何东西来控制转移我正在使用claimInterface。 – ravi

+0

您是否尝试过使用索引为零的接口的claimInterface()?它意味着'usbDevice.getInterface(0)'。 – xoska74

相关问题