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!(delegatedelegate: CBPeripheralManagerDelegate!, queuequeue: dispatch_queue_t!)Objective C
- (instancetype)initWithDelegate:(id<CBPeripheralManagerDelegate>)delegatequeue:(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!(delegatedelegate: CBPeripheralManagerDelegate!, queuequeue: dispatch_queue_t!, optionsoptions: [NSObject : AnyObject]!)Objective C
- (instancetype)initWithDelegate:(id<CBPeripheralManagerDelegate>)delegatequeue:(dispatch_queue_t)queueoptions:(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() -> CBPeripheralManagerAuthorizationStatusObjective 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Обсуждение
YEStrueесли периферийное устройство в настоящее время распространяет данные в результате Вас успешно вызовstartAdvertising:метод.NOfalseесли периферийное устройство в настоящее время не распространяет данные.Оператор импорта
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 *)valueforCharacteristic:(CBMutableCharacteristic *)characteristiconSubscribedCentrals:(NSArray *)centralsПараметры
valueХарактеристическое значение Вы хотите отправить через уведомление или индикацию.
characteristicХарактеристика, значение которой изменилось.
centralsСписок centrals (представленный
CBCentralобъекты), которые подписались для получения обновлений значения характеристики. Еслиnil, все подписались, centrals обновляются. Проигнорированы Centrals, не подписавшиеся на значение характеристики.Возвращаемое значение
YEStrueесли обновление успешно отправляется в подписанное центральное или centrals.NOfalseесли обновление успешно не отправляется, потому что базовая очередь передачи полна.Обсуждение
Вы используете этот метод для отправки обновлений значения характеристики — через уведомление или индикацию — к выбранным centrals, подписавшимся на значение той характеристики. Если возвращается метод
NOfalseпотому что базовая очередь передачи полна, периферийные вызовы диспетчера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 *)requestwithResult:(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)latencyforCentral:(CBCentral *)centralПараметры
latencyЖелаемая задержка соединения. Для списка возможных значений задержки соединения, которые можно установить для периферийного менеджера, посмотрите Периферийного менеджера Коннекшна Лэтенси.
centralЦентральное, с которым в настоящее время подключается периферийный менеджер.
Обсуждение
Задержка периферийно-центральное управление соединениями, как часто сообщениями можно обменяться между периферийным устройством и центральным, с которым подключено периферийное устройство. Путем установки желаемой задержки соединения Вы управляете отношением между частотой, с которой данные переданы и получающаяся производительность батареи периферийного устройства. При вызове этого метода для установки задержки соединения, обратите внимание на то, что не гарантируются изменения задержки соединения. И так, результирующая задержка может варьироваться. Если Вы явно не устанавливаете задержку, задержка соединения установлена в задержку, выбранную центральным устройством, когда было сначала установлено соединение. Как правило, не необходимо изменить задержку соединения.
Оператор импорта
Objective C
@import CoreBluetooth;Swift
import CoreBluetoothДоступность
Доступный в iOS 6.0 и позже.
-
Ключи раньше передавали опции
initWithDelegate:queue:options:метод.Объявление
Swift
let CBPeripheralManagerOptionShowPowerAlertKey: String let CBPeripheralManagerOptionRestoreIdentifierKey: StringObjective C
NSString *const CBPeripheralManagerOptionShowPowerAlertKey; NSString *const CBPeripheralManagerOptionRestoreIdentifierKey;Константы
-
CBPeripheralManagerOptionShowPowerAlertKeyБулево значение, указывающее, должна ли система вывести на экран диалоговое окно предупреждения пользователю, если Bluetooth выключается, когда инстанцируют периферийный менеджер.
Значение для этого ключа
NSNumber. Если ключ не указан, значение по умолчаниюNOfalse.Доступный в 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;Константы
-
UnknownCBPeripheralManagerStateUnknownТекущее состояние периферийного менеджера неизвестно; обновление неизбежно.
Доступный в iOS 6.0 и позже.
-
ResettingCBPeripheralManagerStateResettingСоединение с системной службой было на мгновение потеряно; обновление неизбежно.
Доступный в iOS 6.0 и позже.
-
UnsupportedCBPeripheralManagerStateUnsupportedПлатформа не поддерживает низкоэнергетическое периферийное устройство/роль сервера Bluetooth.
Доступный в iOS 6.0 и позже.
-
UnauthorizedCBPeripheralManagerStateUnauthorizedПриложение не разрешено использовать низкоэнергетическое периферийное устройство/роль сервера Bluetooth.
Доступный в iOS 6.0 и позже.
-
PoweredOffCBPeripheralManagerStatePoweredOffBluetooth в настоящее время выключается.
Доступный в iOS 6.0 и позже.
-
PoweredOnCBPeripheralManagerStatePoweredOnBluetooth в настоящее время включается и доступен использованию.
Доступный в 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;Константы
-
LowCBPeripheralManagerConnectionLatencyLowЗа время работы от батареи быстрая связь имеет приоритет.
Доступный в iOS 6.0 и позже.
-
MediumCBPeripheralManagerConnectionLatencyMediumБаланс выходит между частотой коммуникаций и время работы от батареи.
Доступный в iOS 6.0 и позже.
-
HighCBPeripheralManagerConnectionLatencyHighРасширение времени работы от батареи имеет приоритет над быстрой связью.
Доступный в 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;Константы
-
NotDeterminedCBPeripheralManagerAuthorizationStatusNotDeterminedПользователь еще не сделал выбор относительно того, может ли это приложение совместно использовать данные с помощью служб Bluetooth, в то время как в фоновом режиме утверждают.
Доступный в iOS 7.0 и позже.
-
RestrictedCBPeripheralManagerAuthorizationStatusRestrictedВ то время как в фоновом режиме утверждают, это приложение не разрешено совместно использовать данные с помощью служб Bluetooth. Пользователь не может изменить состояние этого приложения, возможно вследствие активных ограничений, таких как существующий родительский контроль.
Доступный в iOS 7.0 и позже.
-
DeniedCBPeripheralManagerAuthorizationStatusDeniedВ то время как в фоновом режиме утверждают, пользователь явно отклонил это приложение от совместного использования данных с помощью служб Bluetooth.
Доступный в iOS 7.0 и позже.
-
AuthorizedCBPeripheralManagerAuthorizationStatusAuthorizedВ то время как в фоновом режиме утверждают, это приложение разрешено совместно использовать данные с помощью служб Bluetooth.
Доступный в iOS 7.0 и позже.
Оператор импорта
Objective C
@import CoreBluetooth;Swift
import CoreBluetoothДоступность
Доступный в iOS 7.0 и позже.
-
