2016-03-21 4 views
0

Я нашел примеры Objective-Cфон Bluetooth сканирования в Xamarin.iOS

[manager scanForPeripheralsWithServices:nil 
           options:@{ 
    CBCentralManagerScanOptionSolicitedServiceUUIDsKey:@[ 
     [CBUUID UUIDWithString:@"7905F431-B5CE-4E99-A40F-4B1E122D00D0"]]}]; 

и попытаться преобразовать Xamarin.iOS код

PeripheralScanningOptions option = new PeripheralScanningOptions(NSDictionary.FromObjectAndKey(CBCentralManager.ScanOptionSolicitedServiceUUIDsKey, CBUUID.FromString("84C80001-4A61-60B9-3A2B-1300855E588C"))); 

CBCM.ScanForPeripherals(new []{ CBUUID.FromString("84C80001-4A61-60B9-3A2B-1300855E588C") }, option); 

, но не работает,

том, как использовать CBCentralManager.ScanOptionSolicitedServiceUUIDsKey в Xamarin.iOS?

ответ

1

Ваш код C# не похож на код ObjC.

[manager scanForPeripheralsWithServices:nil 

означает, что первый параметр null, не CBUUID массив. Это было бы ближе:

CBCM.ScanForPeripherals (null, option); 

Также ObjC конвенция должна иметь объект и ключи (не ключи и объектов), поэтому параметры, которые вы используете с FromObjectAndKey должно быть отменено.

+0

изменить код, CBCM.ScanForPeripherals ((CBUUID []) нуль, NSDictionary.FromObjectAndKey (CBUUID.FromString ("84C80001-4A61-60B9-3A2B-1300855E588C"), CBCentralManager.ScanOptionSolicitedServiceUUIDsKey)); , но не работает, не удалось отсканировать любое устройство – mize

+0

Я не смог найти на примере кода сканирования фона Bluetooth, даже кода примеров Bluetooth слишком мало :( – mize

0

Вам необходимо установить фоновый режим для использования в фоновом режиме из файла info.plist. Включите фоновый режим и выберите опцию Bluetooth LE.

здесь Скриншот файла info.plist с настройкой использования BLE в фоновом режиме. Screenshot

Смежные вопросы