2016-06-06 3 views
0

Для работы с устройствами Bluetooth я загрузил одну демо-версию с этого URL-адреса https://www.raywenderlich.com/52080/introduction-core-bluetooth-building-heart-rate-monitor.Обнаружение устройств Bluetooth в IOS

Я пытаюсь получить список ближайших устройств Bluetooth с использованием UUID @ "180A", но он не обнаруживает никаких устройств.

Пожалуйста, помогите, если кто-нибудь это осуществил.

// Изменения

После добавления ниже доступ запроса его показать статус разумеющееся. Но он не звонил своим делегатам для обнаружения устройств.

- (void)requestBluetoothAccess { 

if(!self.mgr) { 
    self.mgr = [[CBCentralManager alloc] initWithDelegate:self queue:nil]; 
} 
/* 
requests to start scanning for bluetooth devices. 
*/ 
CBUUID *heartRate = [CBUUID UUIDWithString:@"180A"]; 

// Create a dictionary for passing down to the scan with service method 
NSDictionary *scanOptions = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:NO] forKey:CBCentralManagerScanOptionAllowDuplicatesKey]; 
[self.mgr scanForPeripheralsWithServices:[NSArray arrayWithObject:heartRate] options:scanOptions]; 
} 
+1

Есть ли у вас периферия с услугами по поддержанию температуры поблизости? Вы используете свое приложение на реальном устройстве, а не на симуляторе? – Paulw11

+0

Вам нужно реализовать метод 'centralManagerDidUpdateState' и только инициировать сканирование после того, как вы находитесь в состоянии включенного питания. – Paulw11

+0

Я работаю на Ipad и не имею службы сердечного ритма поблизости. Я хочу обнаружить устройства Bluetooth рядом с устройствами. –

ответ

1

Попробуйте это: Использование Core Bluetooth Framework

использованием checkBluetoothAccess и requestBluetoothAccess метод

- (void)checkBluetoothAccess { 

     if(!self.cbManager) { 
      self.cbManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil]; 
     } 

    /* 
    Ask to bluetooth manager ahead of time what the authorization status, for our bundle and take the action. 
    */ 

    CBCentralManagerState state = [self.cbManager state]; 

    if(state == CBCentralManagerStateUnknown) { 
      [self alertViewWithDataClass:Bluetooth status:NSLocalizedString(@"UNKNOWN", @"")]; 
    } 
    else if(state == CBCentralManagerStateUnauthorized) { 
      [self alertViewWithDataClass:Bluetooth status:NSLocalizedString(@"DENIED", @"")]; 
    } 
else { 
      [self alertViewWithDataClass:Bluetooth status:NSLocalizedString(@"GRANTED", @"")]; 
    } 
} 

.

- (void)requestBluetoothAccess { 

    if(!self.cbManager) { 
      self.cbManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil]; 
    } 

/* 
    requests to start scanning for bluetooth devices. 
*/ 

[self.cbManager scanForPeripheralsWithServices:nil options:nil]; 

    } 
+0

После того, как реализовано его шоу, GRANTED, но не вызвал делегатов устройств обнаружения. –

+0

После этого выполните следующие действия: Идите в настройку -> Bluetooth (вы можете найти устройство?) –

+0

В настройке, показывающей Bluetooth-устройства –

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