Android 기반 장치가 USB 호스트가 아닌 USB 장치로 작동하는 앱을 개발하고 있습니다. 그래서 안드로이드 장치가 연결된 호스트를 찾아야합니다. 여기 내 코드는 다음과 같습니다.GetAccessoryList가 호출 될 때 UsbManager가 null을 반환합니다.
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.hardware.usb.accessory 아마 장치는 USB 액세서리 모드에 있고 다른 하나는 호스트와 같은 역할을합니다. 아마 그 중 하나가 액세서리 목록을 검색 할 수 없기 때문일 수 있습니까? –
실제로 사실입니다. 그 중 하나는 액세서리 모드이고 다른 하나는 호스트 모드입니다. 그러나 왜이 방법으로 연결할 수 없습니까 ?? –
USB 호스트 만 액세서리 목록을 검색 할 수 있음을 이해합니다. –