[英]Usb List Devices in Xamarin.Forms
我尝试在 xamarin.forms 中创建通过串行 odt 与智能手机连接的 USB 设备列表。 为此,我使用这个项目https://github.com/anotherlab/UsbSerialForAndroid
如何使用 Project.Droid.MainActivity 中的设备在共享项目中执行列表视图? 我试图用依赖服务来做到这一点:
这是我的第 1 页(我想在其中显示列表视图):
public partial class Page1 : ContentPage {
public Page1()
{
InitializeComponent();
DependencyService.Get<Interface1>().moj();
}
}
我的界面:
namespace SensDxMobileApp.Views.MainWindow {
public interface Interface1 {
void moj();
}
}
和 MyActivity(Droid 项目):
[assembly: Xamarin.Forms.Dependency(typeofProject.Droid.MainActivity))]
namespace Project.Droid {
public class MainActivity: Interface
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
listView = new Android.Widget.ListView;
}
public async void moj()
{
adapter = new UsbSerialPortAdapter(this);
listview.Adapter = adapter;
listView.ItemClick += async (sender, e) =>
{
await OnItemClick(sender, e);
};
await PopulateListAsync();
detachedReceiver = new UsbDeviceDetachedReceiver(this);
RegisterReceiver(detachedReceiver, new IntentFilter(UsbManager.ActionUsbDeviceDetached));
}
}
但是我在 Page1(); 中的“DependencyService.Get().moj()”上有一个错误“对象引用未设置为对象的实例。”
有人做过类似的事情吗? 谢谢
如果您使用 DependencyService 路由,那么您将需要创建一个单独的类来实现 Interface1 并将其注册为依赖项服务。 我认为您不能将 MainActivity 注册为 DependencyService 实现。
您将遇到的一个问题主要是异步代码和回调。
您也不应该将 Android ListView 更新为 DependencyService 调用。 这将更适合作为自定义渲染器。 作为 DependencyService 实现,您可能希望moj()
方法返回可由 Xamarin.Forms 代码使用的数据。 您需要的不仅仅是这种方法。 你需要代码来初始化UsbSerialPort
类,代码来查询设备列表,然后调用一个回调来发回该列表,理论上无论如何。 我从来没有用 Forms 测试过那个库。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.