我的Android设备上连接了两个USB耳机/扬声器。我可以列出:
UsbManager usbManager = (UsbManager) getSystemService(Context.USB_SERVICE);
Map<String, UsbDevice> deviceMap = filterAudioOnly(usbManager.getDeviceList());
我看不到专门为Android选择UsbDevice
的方法。所以我试图有效地禁用我不想使用的设备:
UsbDeviceConnection connection = usbManager.openDevice(device);
for (int i = 0; i < device.getInterfaceCount(); i++) {
UsbInterface intf = device.getInterface(i);
connection.claimInterface(intf, true);
}
如果我这样做的话,另一个应用正在播放音乐,那么音乐就会从我声称的设备中消失,并继续通过我没有的设备:很棒。但是,通过以下方式释放界面:
for (UsbInterface intf: interfaces) {
connection.releaseInterface(intf);
}
connection.close();
不会通过该设备重新启用音频。
我也尝试过只定位UsbDevice接口的输出端点,但这种做法更不成功。
还有什么我应该尝试的吗?