Périphériques usb android, c # Xamarin

J'ai récemment commencé à écrire sur Xamarin, et j'ai eu des problèmes avec l'écriture de code pour regarder les périphériques attachés à mon hôte.

J'ai lu les documentations SDK, et tous les documents sont écrits dans java. J'essaie de changer java en C #, et j'ai codé ceci pour trouver les périphériques suivants:

  • Comment faire pour que ma mise en page puisse se défiler vers le bas?
  • Extrait le code du pays à partir du numéro de téléphone
  • Android XML Existe-t-il un moyen d'utiliser l'espace de noms d'outils avec des attributs personnalisés?
  • Android EditText se fond dans l'arrière-plan
  • Android Studio possède-t-il un outil d'analyse de mémoire comme MAT dans Eclipse?
  • Nom du mois en tant que chaîne
  • UsbManager manager = (UsbManager)GetSystemService (Context.UsbService); display.Text += " /n inizializzo il manager"; display.Text += "numero dispositivi: "; display.Text += manager.DeviceList.Count; 

    Avec l'application "usb manager", je peux voir tous les usb, il y en a 3. Mais avec ce code, il semble être 0 usb.

    Je ne comprends pas pourquoi.

  • Studio Android 0.5.9: 2 avertissements ennuyeux de Gradle
  • Android 5 et onCliquez dans la mise en page xml
  • Android spinner Reliure de données en utilisant XML et afficher les valeurs sélectionnées
  • Quelque chose ne va pas dans le rayon d'angle Android
  • Android TextView: Changer la couleur du texte sur le clic
  • Existe-t-il une méthode à utiliser pour vérifier si Android Wear est usé ou non?
  • 2 Solutions collect form web for “Périphériques usb android, c # Xamarin”

    Bien, il semble que vous ayez déjà résolu celui-ci, j'ai peut-être quelques conseils supplémentaires pour vous. Tout d'abord, comme vous l'avez constaté, l'hôte USB n'est pris en charge que dans les versions Android 3.1 et supérieures. Deuxièmement, vous devez ajouter la "fonctionnalité d'utilisation" au manifeste Android.

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

    Assurez-vous d'inclure required = "false" pour vous assurer que votre application peut être installée et démarrée sur un périphérique qui ne prend pas en charge l'hôte USB (si l'hôte USB est optionnel pour votre application).

    Troisièmement, vous seriez surpris de voir combien de périphériques mobiles modernes ne prennent pas en charge le mode hôte et le quatrième, le port USB doit fournir suffisamment d'alimentation pour le périphérique usagé joint. Cinquième et dernier point: l'Android n'est pas adapté aux communications usb à grande vitesse "en temps réel". Android a une mauvaise habitude de faire une pause sur l'ensemble du système et de collecter les ordures avant de «débloquer» et de passer à autre chose. Si vous essayez d'envoyer beaucoup de données via usb à un taux constant, cela peut provoquer la saturation du tampon lorsque Android fait une pause et des CG, et à la lecture suivante du tampon, vous pouvez trouver des données corrompues. Alors assurez-vous de regarder votre gestion de la mémoire lors de la création d'une application qui inclut les communications USB! J'ai trouvé que la configuration du pont Xamarin GC sur le mode "Tarjan" contribue un peu à réduire les pauses induites par GC, mais cela pourrait être spécifique à mon application.

    Peut-être que ce n'est pas un bon ajustement pour répondre à votre question, mais je me sentais bavard;). Bonne chance!

    • Edit: Ne remarque pas que OP n'a pas précisé s'il souhaite utiliser un accessoire usb ou un périphérique USB-hôte. Pour un accessoire, utilisez le conseil de Mike Stonis!

    Il semble que vous n'avez pas les paramètres appropriés dans votre manifeste. Examinez les paramètres fournis à la page d'aide sur les accessoires USB Android .

    Au minimum, vous devez ajouter la ligne suivante à votre fichier AndroidManifest.xml.

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

    Astuce: L'AndroidManifest.xml se trouve sous la section Propriétés d'un projet Xamarin.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.