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:

  • Faire disparaître une barre de navigation à Xamarin.Forms
  • Est-il possible d'utiliser le système de compilation Gradle pour Android avec Eclipse?
  • L'actualisation du projet Gradle a échoué après la mise à jour de Android Studio
  • Android: changez la couleur du texte désactivé à l'aide de Thème / Style?
  • Comment afficher un écran d'accueil unique?
  • Intermittent 401 Non autorisé de Google GCM
  • 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.

  • La meilleure façon de travailler avec les dates dans Android SQLite
  • Comment capturer la nouvelle intention dans onNewIntent ()?
  • Studio Android 2.3 course instantanée ne fonctionne pas
  • GSON: déserialisation d'objets personnalisés
  • Comment puis-je corriger le "Aucun certificat trouvé? L'application Chrome a demandé un certificat" Problème Android / Google Chrome
  • Projet de chargement d'erreur: ne peut pas charger 3 facettes Détails
  • 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.