2015-03-02 2 views
0

В кроссплатформенной платформе Xamarin.Form можно показать список доступных устройств BLE (после сканирования) во всплывающем диалоговом окне или в списке меню, а затем подключить требуемое устройство BLE от всплывающее диалоговое окно и отображение данных в пользовательском интерфейсе, созданных для отображения данных ??????BLE на платформе Xamarin Cross

ответ

0

Для получения списка доступных устройств BLE вам понадобится DependencyService, и, как обычно, можно просто отобразить на ListView.

Кроме того, компонент, созданный Xamarin, может помочь вам легко найти устройства BLE для iOS и Android.

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

0

Xamarin не обеспечивает кросс-платформенную поддержку BLE из коробки. Есть несколько сторонних библиотек, обеспечивающих кросс-платформенную функциональность BLE, один из которых я написал, проведя 1-2 года в собственном проекте BLE: 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); 
} 
Смежные вопросы