Usb-устройства android, c # Xamarin

Недавно я начал писать на Xamarin, и у меня возникли проблемы с написанием кода, чтобы посмотреть на устройства, подключенные к моему хосту.

Я прочитал документацию SDK, и все документы написаны в java. Я пытаюсь изменить java на C #, и я закодировал это, чтобы найти подключенные устройства:

UsbManager manager = (UsbManager)GetSystemService (Context.UsbService); display.Text += " /n inizializzo il manager"; display.Text += "numero dispositivi: "; display.Text += manager.DeviceList.Count; 

С приложением «usb manager» я вижу все прикрепленные usb, есть 3. Но с этим кодом он выглядит как 0 usb.

Я не понимаю, почему.

Solutions Collecting From Web of "Usb-устройства android, c # Xamarin"

Похоже, вы уже решили это, но у меня могут появиться дополнительные советы. Прежде всего, как вы узнали, USB-хост поддерживается только в версиях Android 3.1 и более поздних версий. Во-вторых, вам нужно добавить «use-feature» в манифест андроида.

 <uses-feature android:name="android.hardware.usb.host" android:required="false" /> 

Обязательно включите обязательный = «false», чтобы убедиться, что ваше приложение может быть установлено и запущено на устройстве, которое не поддерживает USB-хост (если usb-хост является необязательным для вашего приложения).

В-третьих, вы будете удивлены, сколько современных мобильных устройств не поддерживают режим хоста еще и в-четвертых, USB-порт должен обеспечить достаточную мощность для подключенного USB-устройства. Пятая и последняя точка: Android на самом деле не подходит для высокоскоростных USB-коммуникаций реального времени. Android имеет неприятную привычку приостанавливать всю систему и собирать мусор перед «разблокировкой» и двигаться дальше. Если вы пытаетесь отправить много данных через usb с постоянной скоростью, это может привести к заполнению буфера, когда Android приостанавливается и GC, а при следующем считывании в буфер вы можете найти поврежденные данные. Поэтому следите за своим управлением памятью при создании приложения, которое включает в себя usb-коммуникацию! Я обнаружил, что конфигурация моста Xamarin GC в режиме «Тарьян» помогает совсем немного в сокращении вызванных GC-пауз, это может быть особенно характерно для моего приложения.

Возможно, это не очень подходит для ответа на ваш вопрос, но я чувствовал себя болтливым;). Удачи!

  • Изменить: не заметил, что ОП не указал, хочет ли он использовать аксессуар usb или устройство usb-host. Для аксессуаров используйте подсказку Майка Стониса!

Похоже, что у вас нет правильных настроек в вашем манифесте. Просмотрите предоставленные параметры на странице справки о поддержке USB-устройства Android .

Как минимум, вам нужно будет добавить следующую строку в ваш файл AndroidManifest.xml.

 <uses-feature android:name="android.hardware.usb.accessory" /> 

Подсказка: AndroidManifest.xml находится в разделе «Свойства» в проекте Xamarin.