我正在开发一个应用程序,其中android驱动的设备充当USB设备(而不是USB主机)。所以我需要找到我的android设备所连接的主机。下面是我的代码:
btnRefresh.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//UsbAccessory[] usbAccessory = new UsbAccessory[1];
mUsbManager = (UsbManager)getSystemService(Context.USB_SERVICE);
usbAccessory = mUsbManager.getAccessoryList();
List<String> accessoryListTemp= new ArrayList<String>();
if (usbAccessory != null) {
if (usbAccessory.length > 0) {
String hhhh = usbAccessory[0].getModel();
accessoryListTemp.add(hhhh);
}
}
//accessoryListTemp.add("hamed test item");
ArrayAdapter<String> arrayAdapterTemp = new ArrayAdapter<String>(getApplicationContext(),
android.R.layout.simple_spinner_item, accessoryListTemp);
arrayAdapterTemp.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerHosts.setAdapter(arrayAdapterTemp);
}
});我不明白为什么我在accessoryListTemp变量中得到了null。这可能意味着找不到设备,但实际上我的设备已连接,其他设备找到了它。具体地说,我正在通过USB连接两个android手机,其中一个是主机,另一个是设备,但设备无法识别主机。
发布于 2016-10-19 14:42:03
警告:您应该使用正确的OTG行!!check android.hardware.usb.accessory in uses-feature
<manifest ...>
<uses-feature android:name="android.hardware.usb.accessory" />
<uses-sdk android:minSdkVersion="<version>" />
...
<application>
<uses-library android:name="com.android.future.usb.accessory" />
<activity ...>
...
<intent-filter>
<action android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" />
</intent-filter>
<meta-data android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED"
android:resource="@xml/accessory_filter" />
</activity>
</application>
https://stackoverflow.com/questions/40123389
复制相似问题