Java Code Examples for android.hardware.usb.UsbDevice#getConfiguration()
The following examples show how to use
android.hardware.usb.UsbDevice#getConfiguration() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: Java_WiimoteAdapter.java From citra_android with GNU General Public License v3.0 | 4 votes |
public static boolean OpenAdapter() { // If the adapter is already open. Don't attempt to do it again if (usb_con != null && usb_con.getFileDescriptor() != -1) return true; HashMap<String, UsbDevice> devices = manager.getDeviceList(); for (Map.Entry<String, UsbDevice> pair : devices.entrySet()) { UsbDevice dev = pair.getValue(); if (dev.getProductId() == NINTENDO_WIIMOTE_PRODUCT_ID && dev.getVendorId() == NINTENDO_VENDOR_ID) { if (manager.hasPermission(dev)) { usb_con = manager.openDevice(dev); UsbConfiguration conf = dev.getConfiguration(0); Log.info("Number of configurations: " + dev.getConfigurationCount()); Log.info("Number of Interfaces: " + dev.getInterfaceCount()); Log.info("Number of Interfaces from conf: " + conf.getInterfaceCount()); // Sometimes the interface count is returned as zero. // Means the device needs to be unplugged and plugged back in again if (dev.getInterfaceCount() > 0) { for (int i = 0; i < MAX_WIIMOTES; ++i) { // One interface per Wii Remote usb_intf[i] = dev.getInterface(i); usb_con.claimInterface(usb_intf[i], true); // One endpoint per Wii Remote. Input only // Output reports go through the control channel. usb_in[i] = usb_intf[i].getEndpoint(0); Log.info("Interface " + i + " endpoint count:" + usb_intf[i].getEndpointCount()); } return true; } else { // XXX: Message that the device was found, but it needs to be unplugged and plugged back in? usb_con.close(); } } } } return false; }
Example 2
Source File: Java_GCAdapter.java From citra_android with GNU General Public License v3.0 | 4 votes |
public static boolean OpenAdapter() { HashMap<String, UsbDevice> devices = manager.getDeviceList(); for (Map.Entry<String, UsbDevice> pair : devices.entrySet()) { UsbDevice dev = pair.getValue(); if (dev.getProductId() == 0x0337 && dev.getVendorId() == 0x057e) { if (manager.hasPermission(dev)) { usb_con = manager.openDevice(dev); Log.info("GCAdapter: Number of configurations: " + dev.getConfigurationCount()); Log.info("GCAdapter: Number of interfaces: " + dev.getInterfaceCount()); if (dev.getConfigurationCount() > 0 && dev.getInterfaceCount() > 0) { UsbConfiguration conf = dev.getConfiguration(0); usb_intf = conf.getInterface(0); usb_con.claimInterface(usb_intf, true); Log.info("GCAdapter: Number of endpoints: " + usb_intf.getEndpointCount()); if (usb_intf.getEndpointCount() == 2) { for (int i = 0; i < usb_intf.getEndpointCount(); ++i) if (usb_intf.getEndpoint(i).getDirection() == UsbConstants.USB_DIR_IN) usb_in = usb_intf.getEndpoint(i); else usb_out = usb_intf.getEndpoint(i); InitAdapter(); return true; } else { usb_con.releaseInterface(usb_intf); } } final Activity emulationActivity = NativeLibrary.sEmulationActivity.get(); if (emulationActivity != null) { emulationActivity.runOnUiThread(() -> Toast.makeText(emulationActivity, "GameCube Adapter couldn't be opened. Please re-plug the device.", Toast.LENGTH_LONG).show()); } else { Log.warning("Cannot show toast for GameCube Adapter failure."); } usb_con.close(); } } } return false; }