Удаленные интерфейсы для Android 5.0 Lollipop UsbDevice

Я написал утилиту Android, которая разговаривает с несколькими пользовательскими устройствами через USB, используя API android UsbHost. Это отлично работает в 4.4, но в 5.0 некоторые из устройств не имеют своих интерфейсов (getInterfaceCount () == 0).

Я использовал их в Galaxy Note 3 с CM11, и они отлично работали, но поскольку эта версия CM нестабильна, я попытался перейти на CM12. Проблема возникла, и я подумал, что это может быть ошибка CM, поэтому я попробовал простую программу, которая перечисляет устройства / интерфейсы на Nexus 5 с выпуском версии 5.0 Google, и проблема там существует.

Я создал простое тестовое приложение с Button и TextView с OnClickListener, настроенным как:

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test_usb); Button button = (Button) findViewById(R.id.butt); final TextView text = (TextView) findViewById(R.id.text); final UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String string = ""; if( manager == null ) string += "no usb manager"; else { for(UsbDevice device : manager.getDeviceList().values()) { string += device.toString() + "\n"; string += String.format(" ifc: %d\n", device.getInterfaceCount()); } } text.setText(string); } }); } 

Устройства подключаются к концентратору, который подключен к телефону с помощью кабеля OTG. Когда этот код запущен в 5.0, устройства перечислены, но только одно устройство в списке имеет интерфейсы (и это не всегда одно и то же устройство). Однако, если я использую оболочку в телефоне с ADB, я могу видеть все устройства и их интерфейсы с помощью «cat / sys / kernel / debug / usb / devices».

Является ли это ошибкой в ​​android 5.0 или изменился usb api, и я чего-то не хватает? Я не смог найти какую-либо информацию в Интернете.

Solutions Collecting From Web of "Удаленные интерфейсы для Android 5.0 Lollipop UsbDevice"

Оказывается, это ошибка, введенная в 5.0. Есть проблема с отслеживателем ошибок androids:

https://code.google.com/p/android/issues/detail?id=159529&q=usb%20interface&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars

Так что это было известно начиная с 5.0, но в настоящее время не было никакой работы (или даже комментариев) от google об этом.