gpt4 book ai didi

c# - USB 设备 android,c# Xamarin

转载 作者:可可西里 更新时间:2023-11-01 18:48:07 27 4
gpt4 key购买 nike

我最近开始在 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。

我不明白为什么。

最佳答案

看起来你已经解决了这个问题,不过我可能会为你提供一些额外的提示。首先,就像您发现 USB 主机仅在 Android 3.1 及更高版本中受支持。其次,您需要将“uses-feature”添加到 android list 中。

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

请务必包含 required="false"以确保您的应用可以在不支持 USB-host 的设备上安装和启动(如果您的应用可选 usb-host)。

第三,您会惊讶于有多少现代移动设备尚不支持主机模式,第四,USB 端口需要为连接的 USB 设备提供足够的电力。第五点也是最后一点:Android 并不真正适合高速“实时”USB 通信。 Android 有一个坏习惯,它会在“解除阻塞”并继续之前暂停整个系统并收集垃圾。如果您尝试以恒定速率通过 USB 发送大量数据,这可能会导致缓冲区在 Android 暂停和 GC 时填满,并且在下一次读取缓冲区时您可能会发现损坏的数据。因此,在构建包含 USB 通信的应用程序时,请务必注意内存管理!我发现将 Xamarin GC 桥配置为“Tarjan”模式有助于减少 GC 引起的暂停,但这可能特定于我的应用程序。

也许不太适合回答您的问题,但我觉得很健谈 ;)。祝你好运!

  • 编辑:没有注意到 OP 没有指定他是想使用 USB 配件还是 USB 主机设备。对于配件,请使用 Mike Stonis 的小费!

关于c# - USB 设备 android,c# Xamarin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19776708/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com