繁体   English   中英

Xamarin Cross Platform上的BLE

[英]BLE on Xamarin Cross Platform

在Xamarin.Form cross platform中,有什么方法可以在弹出对话框或菜单列表中显示可用BLE设备的列表(扫描后),然后从弹出对话框中连接所需的BLE设备并显示创建用于显示数据的UI上的数据

您将需要DependencyService来检索可用BLE设备的列表,并像往常一样仅显示到ListView

此外,Xamarin制造的以下组件可能会帮助您轻松找到适用于iOS和Android的BLE设备。

https://components.xamarin.com/view/Monkey.Robotics

Xamarin不提供开箱即用的跨平台BLE支持。 有一些第三方库提供跨平台BLE功能,其中一个是我在本地BLE项目上花费1-2年后编写的: https//github.com/nexussays/ble.net

有一个完整的适用于iOS,Android和UWP的Xamarin.Forms项目( https://github.com/nexussays/ble.net/tree/master/test/ble.net.sampleapp ),它提供了您要求的确切功能-扫描,显示结果,连接,显示对话框等。但是在这里简要介绍一下API ...

您可以这样进行扫描:

await adapter.ScanForDevices(
   ( IBlePeripheral peripheral ) =>
   {
      // check if this is the device you want to connect to
      // e.g., query peripheral.Advertisement.Services
   },
   cancellationTokenSource.Token );

并连接到读/写/通知特性:

var connection = await adapter.ConnectToDevice( peripheral, TimeSpan.FromSeconds( 5 ));
if(connection.IsSuccessful())
{
   var gatt = connection.GattServer;
   var value = await gatt.ReadCharacteristicValue( someServiceGuid, someCharacteristicGuid );
   await gatt.WriteCharacteristicValue( someServiceGuid, someCharacteristicGuid, new byte[]{ 1, 2, 3 } );
   // etc...
}
else
{
   Debug.WriteLine( "Error connecting to device. result={0:g}", connection.ConnectionResult );
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM