CBPeripheralManager
Оператор импорта
Swift
import CoreBluetooth
Objective C
@import CoreBluetooth;
Доступность
Доступный в iOS 6.0 и позже.
CBPeripheralManager
объекты используются, чтобы управлять опубликованными службами в базе данных Generic Attribute Profile (GATT) локального периферийного устройства и распространить эти службы к центральным устройствам (представленный CBCentral
объекты). В то время как служба находится в базе данных, это видимо к и может быть получено доступ, любой соединился центральный. Однако если Ваше приложение не указало bluetooth-peripheral
фоновый режим, содержание его служб становится отключенным, когда это в фоновом режиме или в состоянии ожидания; любая удаленная центральная попытка получить доступ к характеристическому значению службы или характерным дескрипторам получает ошибку.
Перед вызовом CBPeripheralManager
методы, состояние периферийного объекта менеджера должно быть включено, как обозначено CBPeripheralManagerStatePoweredOn
. Это состояние указывает, что периферийное устройство (Ваш iPhone или iPad, например) поддерживает низкую энергию Bluetooth и что ее Bluetooth идет и доступный использованию.
-
Инициализирует периферийного менеджера с указанным делегатом и очередью отгрузки.
Объявление
Swift
convenience init!(delegate
delegate
: CBPeripheralManagerDelegate!, queuequeue
: dispatch_queue_t!)Objective C
- (instancetype)initWithDelegate:(id<CBPeripheralManagerDelegate>)
delegate
queue:(dispatch_queue_t)queue
Параметры
delegate
Делегат для получения периферийных ролевых событий.
queue
Очередь отгрузки для диспетчеризации периферийных ролевых событий. Если значение
nil
, периферийный менеджер диспетчеризирует периферийные ролевые события с помощью основной очереди.Возвращаемое значение
Возвращает недавно инициализированного периферийного менеджера.
Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в iOS 6.0 и позже.
-
init (delegate:queue:options:) - initWithDelegate:queue:options:
Определяемый инициализаторИнициализирует периферийного менеджера с указанным делегатом, очередью отгрузки и опциями инициализации.
Объявление
Swift
init!(delegate
delegate
: CBPeripheralManagerDelegate!, queuequeue
: dispatch_queue_t!, optionsoptions
: [NSObject : AnyObject]!)Objective C
- (instancetype)initWithDelegate:(id<CBPeripheralManagerDelegate>)
delegate
queue:(dispatch_queue_t)queue
options:(NSDictionary *)options
Параметры
delegate
Делегат для получения периферийных ролевых событий.
queue
Очередь отгрузки для диспетчеризации периферийных ролевых событий. Если значение
nil
, периферийный менеджер диспетчеризирует периферийные ролевые события с помощью основной очереди.options
Дополнительный словарь, содержащий опции инициализации для периферийного менеджера. Для доступных параметров посмотрите Периферийного менеджера Инитиэлизэйшна Опшнса.
Возвращаемое значение
Возвращает недавно инициализированного периферийного менеджера.
Обсуждение
Этот метод является определяемым инициализатором для
CBPeripheralManager
класс.Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в iOS 7.0 и позже.
-
delegate
СвойствоОбъект делегата, указанный для получения периферийных событий.
Объявление
Swift
weak var delegate: CBPeripheralManagerDelegate!
Objective C
@property(weak, nonatomic) id< CBPeripheralManagerDelegate > delegate
Обсуждение
Для получения информации о том, как реализовать Вашего периферийного делегата менеджера, посмотрите Ссылку на протокол CBPeripheralManagerDelegate.
Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в iOS 6.0 и позже.
-
state
СвойствоТекущее состояние периферийного менеджера. (только для чтения)
Объявление
Swift
var state: CBPeripheralManagerState { get }
Objective C
@property(readonly) CBPeripheralManagerState state
Обсуждение
Когда периферийный объект менеджера первоначально создается, значение по умолчанию этого свойства
CBPeripheralManagerStateUnknown
. Как изменения состояния периферийного менеджера, периферийный менеджер обновляет значение этого свойства и вызываетperipheralManagerDidUpdateState:
метод его объекта делегата. Для списка возможных значений, представляющих состояние периферийного менеджера, посмотрите Периферийное состояние менеджера.Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в iOS 6.0 и позже.
-
В то время как в фоновом режиме утверждают, возвращает состояние авторизации приложения для совместного использования данных.
Объявление
Swift
class func authorizationStatus() -> CBPeripheralManagerAuthorizationStatus
Objective C
+ (CBPeripheralManagerAuthorizationStatus)authorizationStatus
Возвращаемое значение
Значение, указывающее, разрешено ли приложение совместно использовать данные с помощью служб Bluetooth в то время как в фоновом режиме. Для списка возможных значений посмотрите Периферийное Состояние Авторизации менеджера.
Обсуждение
Состоянием авторизации данного приложения управляет система и определяют несколько факторов. В то время как в фоновом режиме утверждают, приложения должны быть явно разрешены совместно использовать данные с помощью служб Bluetooth. Когда Ваше приложение сначала пытается использовать службы Bluetooth для совместного использования данных, система автоматически выводит на экран запрос на авторизацию пользователя.
Вызов этого метода не предлагает пользователю доступ. Вместо этого Вы используете этот метод, чтобы обнаружить ограниченный доступ и просто скрыть любые затронутые функции UI от пользователя.
Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в iOS 7.0 и позже.
-
Публикует службу и любую из ее связанных характеристик и характерных дескрипторов к локальной базе данных GATT.
Объявление
Swift
func addService(_
service
: CBMutableService!)Objective C
- (void)addService:(CBMutableService *)
service
Параметры
service
Служба Вы хотите опубликовать.
Обсуждение
Когда Вы добавляете службу к базе данных, периферийные вызовы диспетчера
peripheralManager:didAddService:error:
метод его объекта делегата. Если служба содержит какие-либо включенные службы, необходимо опубликовать их сначала.Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в iOS 6.0 и позже.
-
Удаляет указанную опубликованную службу из локальной базы данных GATT.
Объявление
Swift
func removeService(_
service
: CBMutableService!)Objective C
- (void)removeService:(CBMutableService *)
service
Параметры
service
Служба Вы хотите удалить.
Обсуждение
Поскольку база данных GATT совместно используется среди приложений на локальном периферийном устройстве, больше чем один экземпляр службы может существовать в базе данных. В результате этот метод удаляет только экземпляр службы, которую Ваше приложение добавило к базе данных (использующий
addService:
метод). Если служба включена какими-либо другими службами, необходимо удалить их сначала.Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в iOS 6.0 и позже.
-
Удаляет все опубликованные службы из локальной базы данных GATT.
Объявление
Swift
func removeAllServices()
Objective C
- (void)removeAllServices
Обсуждение
Поскольку база данных GATT совместно используется среди приложений на локальном периферийном устройстве, этот метод удаляет только службы, что Вы добавили использование
addService:
метод. Любые службы, опубликованные другими приложениями на локальном периферийном устройстве, не удалены из базы данных GATT.Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в iOS 6.0 и позже.
-
Распространяет периферийные данные менеджера.
Объявление
Swift
func startAdvertising(_
advertisementData
: [NSObject : AnyObject]!)Objective C
- (void)startAdvertising:(NSDictionary *)
advertisementData
Параметры
advertisementData
Дополнительный словарь, содержащий данные, Вы хотите распространиться. Возможные ключи
advertisementData
словарь подробно изложен в Ссылке на протокол CBCentralManagerDelegate. Однако только два из ключей поддерживаются для периферийных объектов менеджера:CBAdvertisementDataLocalNameKey
иCBAdvertisementDataServiceUUIDsKey
.Обсуждение
Когда Вы запускаете рекламные периферийные данные, периферийные вызовы диспетчера
peripheralManagerDidStartAdvertising:error:
метод его объекта делегата.Распространение данных сделано на основе «максимальных усилий», потому что пространство ограничивается и могут быть многократные приложения, распространяющиеся одновременно. В то время как Ваше приложение находится на переднем плане, оно может использовать до 28 байтов пространства в начальных данных рекламы для любой комбинации поддерживаемых рекламных ключей данных. Если это пространство израсходовано, существуют дополнительные 10 байтов пространства в ответе сканирования, который может использоваться только для локального имени (представленный значением
CBAdvertisementDataLocalNameKey
ключ). Обратите внимание на то, что эти размеры не включают 2 байта информации заголовка, требующиеся для каждого нового типа данных. Любая служба универсально уникальные идентификаторы (UUIDs), содержавшийся в значенииCBAdvertisementDataServiceUUIDsKey
ключ, которые не помещаются в выделенное пространство, добавляется к специальной области «переполнения»; они могут быть обнаружены только устройством на iOS, явно сканирующим для них. В то время как Ваше приложение в фоновом режиме, локальное имя не распространено, и вся служба UUIDs помещаются в область переполнения. Точный формат данных распространения и ответа определяется в спецификации Bluetooth 4.0, Объем 3, Часть C, Раздел 11.Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в iOS 6.0 и позже.
-
Остановки рекламные периферийные данные менеджера.
Объявление
Swift
func stopAdvertising()
Objective C
- (void)stopAdvertising
Обсуждение
Вызовите этот метод, когда Вы больше не захотите распространить периферийные данные менеджера.
Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в iOS 6.0 и позже.
-
isAdvertising
СвойствоБулево значение, указывающее, распространяет ли периферийное устройство в настоящее время данные. (только для чтения)
Объявление
Swift
var isAdvertising: Bool { get }
Objective C
@property(readonly) BOOL isAdvertising
Обсуждение
YES
true
если периферийное устройство в настоящее время распространяет данные в результате Вас успешно вызовstartAdvertising:
метод.NO
false
если периферийное устройство в настоящее время не распространяет данные.Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в iOS 6.0 и позже.
-
updateValue (_: forCharacteristic:onSubscribedCentrals:) - updateValue:forCharacteristic:onSubscribedCentrals:
Отправляет обновленное характеристическое значение в один или несколько подписанный centrals, через уведомление или индикацию.
Объявление
Swift
func updateValue(_
value
: NSData!, forCharacteristiccharacteristic
: CBMutableCharacteristic!, onSubscribedCentralscentrals
: [AnyObject]!) -> BoolObjective C
- (BOOL)updateValue:(NSData *)
value
forCharacteristic:(CBMutableCharacteristic *)characteristic
onSubscribedCentrals:(NSArray *)centrals
Параметры
value
Характеристическое значение Вы хотите отправить через уведомление или индикацию.
characteristic
Характеристика, значение которой изменилось.
centrals
Список centrals (представленный
CBCentral
объекты), которые подписались для получения обновлений значения характеристики. Еслиnil
, все подписались, centrals обновляются. Проигнорированы Centrals, не подписавшиеся на значение характеристики.Возвращаемое значение
YES
true
если обновление успешно отправляется в подписанное центральное или centrals.NO
false
если обновление успешно не отправляется, потому что базовая очередь передачи полна.Обсуждение
Вы используете этот метод для отправки обновлений значения характеристики — через уведомление или индикацию — к выбранным centrals, подписавшимся на значение той характеристики. Если возвращается метод
NO
false
потому что базовая очередь передачи полна, периферийные вызовы диспетчераperipheralManagerIsReadyToUpdateSubscribers:
когда больше пространства в очереди передачи становится доступным, метод его делегата возражает. После того, как этот метод делегата вызывают, можно снова послать обновление.Если длина
value
параметр превышает длинуmaximumUpdateValueLength
свойство подписанногоCBCentral
,value
параметр является усеченным соответственно.Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в iOS 6.0 и позже.
См. также
peripheralManager:central:didSubscribeToCharacteristic:
peripheralManager:central:didUnsubscribeFromCharacteristic:
-
Реагирует на чтение или запрос записи от связанного центрального.
Объявление
Swift
func respondToRequest(_
request
: CBATTRequest!, withResultresult
: CBATTError)Objective C
- (void)respondToRequest:(CBATTRequest *)
request
withResult:(CBATTError)result
Параметры
request
Чтение или запрос записи, полученный от связанного центрального. Для получения дополнительной информации о чтении и запросах записи, см. Ссылку класса CBATTRequest.
result
Результат попытки выполнить запрос. Для списка возможных результатов посмотрите Ядро Ссылка Констант Bluetooth.
Обсуждение
Когда периферийный менеджер получает запрос (представленный как a
CBATTRequest
объект) от связанного центрального, чтобы читать или записать значение характеристики, это вызываетperipheralManager:didReceiveReadRequest:
илиperipheralManager:didReceiveWriteRequests:
метод его объекта делегата. Каждый раз, когда один из этих методов делегата вызывают, Вы вызываете этот метод для ответа на соответствующее чтение или запрос записи.Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в iOS 6.0 и позже.
-
Устанавливает желаемую задержку соединения для существующего соединения с центральным устройством.
Объявление
Swift
func setDesiredConnectionLatency(_
latency
: CBPeripheralManagerConnectionLatency, forCentralcentral
: CBCentral!)Objective C
- (void)setDesiredConnectionLatency:(CBPeripheralManagerConnectionLatency)
latency
forCentral:(CBCentral *)central
Параметры
latency
Желаемая задержка соединения. Для списка возможных значений задержки соединения, которые можно установить для периферийного менеджера, посмотрите Периферийного менеджера Коннекшна Лэтенси.
central
Центральное, с которым в настоящее время подключается периферийный менеджер.
Обсуждение
Задержка периферийно-центральное управление соединениями, как часто сообщениями можно обменяться между периферийным устройством и центральным, с которым подключено периферийное устройство. Путем установки желаемой задержки соединения Вы управляете отношением между частотой, с которой данные переданы и получающаяся производительность батареи периферийного устройства. При вызове этого метода для установки задержки соединения, обратите внимание на то, что не гарантируются изменения задержки соединения. И так, результирующая задержка может варьироваться. Если Вы явно не устанавливаете задержку, задержка соединения установлена в задержку, выбранную центральным устройством, когда было сначала установлено соединение. Как правило, не необходимо изменить задержку соединения.
Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в iOS 6.0 и позже.
-
Ключи раньше передавали опции
initWithDelegate:queue:options:
метод.Объявление
Swift
let CBPeripheralManagerOptionShowPowerAlertKey: String let CBPeripheralManagerOptionRestoreIdentifierKey: String
Objective C
NSString *const CBPeripheralManagerOptionShowPowerAlertKey; NSString *const CBPeripheralManagerOptionRestoreIdentifierKey;
Константы
-
CBPeripheralManagerOptionShowPowerAlertKey
Булево значение, указывающее, должна ли система вывести на экран диалоговое окно предупреждения пользователю, если Bluetooth выключается, когда инстанцируют периферийный менеджер.
Значение для этого ключа
NSNumber
. Если ключ не указан, значение по умолчаниюNO
false
.Доступный в iOS 7.0 и позже.
-
CBPeripheralManagerOptionRestoreIdentifierKey
Строка (экземпляр
NSString
) содержа уникальный идентификатор (UID) для периферийного менеджера, который инстанцируют.Система использует этот UID для идентификации определенного периферийного менеджера. В результате UID должен остаться тем же для последующего выполнения приложения для периферийного менеджера, чтобы быть успешно восстановленным.
Доступный в iOS 7.0 и позже.
-
-
Значения, представляющие текущее состояние периферийного менеджера.
Объявление
Swift
enum CBPeripheralManagerState : Int { case Unknown case Resetting case Unsupported case Unauthorized case PoweredOff case PoweredOn }
Objective C
typedef enum { CBPeripheralManagerStateUnknown = 0, CBPeripheralManagerStateResetting, CBPeripheralManagerStateUnsupported, CBPeripheralManagerStateUnauthorized, CBPeripheralManagerStatePoweredOff, CBPeripheralManagerStatePoweredOn, } CBPeripheralManagerState;
Константы
-
Unknown
CBPeripheralManagerStateUnknown
Текущее состояние периферийного менеджера неизвестно; обновление неизбежно.
Доступный в iOS 6.0 и позже.
-
Resetting
CBPeripheralManagerStateResetting
Соединение с системной службой было на мгновение потеряно; обновление неизбежно.
Доступный в iOS 6.0 и позже.
-
Unsupported
CBPeripheralManagerStateUnsupported
Платформа не поддерживает низкоэнергетическое периферийное устройство/роль сервера Bluetooth.
Доступный в iOS 6.0 и позже.
-
Unauthorized
CBPeripheralManagerStateUnauthorized
Приложение не разрешено использовать низкоэнергетическое периферийное устройство/роль сервера Bluetooth.
Доступный в iOS 6.0 и позже.
-
PoweredOff
CBPeripheralManagerStatePoweredOff
Bluetooth в настоящее время выключается.
Доступный в iOS 6.0 и позже.
-
PoweredOn
CBPeripheralManagerStatePoweredOn
Bluetooth в настоящее время включается и доступен использованию.
Доступный в iOS 6.0 и позже.
Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в iOS 6.0 и позже.
-
-
Значения, представляющие задержку соединения периферийного менеджера.
Объявление
Swift
enum CBPeripheralManagerConnectionLatency : Int { case Low case Medium case High }
Objective C
typedef enum { CBPeripheralManagerConnectionLatencyLow = 0, CBPeripheralManagerConnectionLatencyMedium, CBPeripheralManagerConnectionLatencyHigh, } CBPeripheralManagerConnectionLatency;
Константы
-
Low
CBPeripheralManagerConnectionLatencyLow
За время работы от батареи быстрая связь имеет приоритет.
Доступный в iOS 6.0 и позже.
-
Medium
CBPeripheralManagerConnectionLatencyMedium
Баланс выходит между частотой коммуникаций и время работы от батареи.
Доступный в iOS 6.0 и позже.
-
High
CBPeripheralManagerConnectionLatencyHigh
Расширение времени работы от батареи имеет приоритет над быстрой связью.
Доступный в iOS 6.0 и позже.
Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в iOS 6.0 и позже.
-
-
Значения, представляющие текущее состояние авторизации периферийного менеджера.
Объявление
Swift
enum CBPeripheralManagerAuthorizationStatus : Int { case NotDetermined case Restricted case Denied case Authorized }
Objective C
typedef enum { CBPeripheralManagerAuthorizationStatusNotDetermined = 0, CBPeripheralManagerAuthorizationStatusRestricted, CBPeripheralManagerAuthorizationStatusDenied, CBPeripheralManagerAuthorizationStatusAuthorized, } CBPeripheralManagerAuthorizationStatus;
Константы
-
NotDetermined
CBPeripheralManagerAuthorizationStatusNotDetermined
Пользователь еще не сделал выбор относительно того, может ли это приложение совместно использовать данные с помощью служб Bluetooth, в то время как в фоновом режиме утверждают.
Доступный в iOS 7.0 и позже.
-
Restricted
CBPeripheralManagerAuthorizationStatusRestricted
В то время как в фоновом режиме утверждают, это приложение не разрешено совместно использовать данные с помощью служб Bluetooth. Пользователь не может изменить состояние этого приложения, возможно вследствие активных ограничений, таких как существующий родительский контроль.
Доступный в iOS 7.0 и позже.
-
Denied
CBPeripheralManagerAuthorizationStatusDenied
В то время как в фоновом режиме утверждают, пользователь явно отклонил это приложение от совместного использования данных с помощью служб Bluetooth.
Доступный в iOS 7.0 и позже.
-
Authorized
CBPeripheralManagerAuthorizationStatusAuthorized
В то время как в фоновом режиме утверждают, это приложение разрешено совместно использовать данные с помощью служб Bluetooth.
Доступный в iOS 7.0 и позже.
Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в iOS 7.0 и позже.
-