2015-03-02 34 views
0

在Xamarin.Form跨平台中,有什么方法可以在弹出对话框或菜单列表中显示可用BLE设备列表(扫描后),然后将所需的BLE设备从弹出对话框并显示用于显示数据的用户界面上的数据??????Xamarin Cross Platform上的BLE

回答

0

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

有一个完整的Xamarin.Forms项目适用于iOS,Android,和UWP(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); 
}