투케이2K

601. (ios/swift5) [간단 소스] CBCentralManager 간단 설명 및 사용 옵션 정리 본문

IOS

601. (ios/swift5) [간단 소스] CBCentralManager 간단 설명 및 사용 옵션 정리

투케이2K 2024. 12. 1. 21:24

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT5

 

[소스 코드]

 

// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------

- 언어 : Swift


- 개발 툴 : Xcode


- 기술 구분 : CBCentralManager / 블루투스 / 장치 스캔

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[설명 정리]
// --------------------------------------------------------------------------------------

1. CBCentralManager 은 주변 장치를 스캔하고, 발견하고, 연결하고, 관리하는 객체입니다


2. CBCentralManager 은 검색되거나 연결된 원격 주변 장치 ( CBPeripheral 객체로 표현 ) 를 관리하며, 검색 된 장치에 연결할 수 있습니다


3. CBCentralManager 를 사용하기 위해서는 Bluetooth 가 켜져 있고 사용 가능 한 권한을 부여 받아야 합니다


4. CBCentralManager 사용 가능 지원 범위 : 

  >> iOS 5.0 이상
  >> 아이패드OS 5.0+
  >> 맥 카탈리스트 13.1+
  >> 맥OS 10.7+
  >> tvOS 9.0 이상
  >> 비전OS 1.0+
  >> 워치OS 2.0 이상


5. CBCentralManager 초기화 관련 : 

  >> convenience init() : 대리인 없이 객체를 초기화합니다.
  >> convenience init(delegate: (any CBCentralManagerDelegate)?, queue: dispatch_queue_t?) : 지정된 대리자 및 디스패치 대기열로 객체를 초기화합니다.
  >> init(delegate: (any CBCentralManagerDelegate)?, queue: dispatch_queue_t?, options: [String : Any]?) : 지정된 대리자, 디스패치 큐, 초기화 옵션을 사용하여 객체를 초기화합니다.


6. CBCentralManager 주변 장치와의 연결 설정 또는 취소 관련 : 

  >> func connect(CBPeripheral, options: [String : Any]?) : 주변장치와의 로컬 연결을 설정합니다.
  >> func cancelPeripheralConnection(CBPeripheral) : 주변장치에 대한 활성 또는 보류 중인 로컬 연결을 취소합니다.
  >> 주변 장치 연결 옵션 : 
    - let CBConnectPeripheralOptionEnableAutoReconnect: String : 시스템이 주변장치에 자동으로 다시 연결할지 여부를 지정하는 부울 값입니다.
    - let CBConnectPeripheralOptionEnableTransportBridgingKey: String : Bluetooth Low Energy를 통해 이미 연결된 경우 클래식 Bluetooth 기술 프로필을 연결하는 옵션입니다.
    - let CBConnectPeripheralOptionNotifyOnConnectionKey: String : 주변 장치를 백그라운드에서 연결할 때 시스템에서 경고를 표시할지 여부를 지정하는 부울 값입니다.
    - let CBConnectPeripheralOptionNotifyOnDisconnectionKey: String : 백그라운드에서 주변 장치의 연결을 끊을 때 시스템에서 경고를 표시할지 여부를 지정하는 부울 값입니다.
    - let CBConnectPeripheralOptionNotifyOnNotificationKey: String : 주변 장치에서 보낸 알림에 대해 시스템이 경고를 표시해야 하는지 여부를 지정하는 부울 값입니다.
    - let CBConnectPeripheralOptionRequiresANCS: String : 장치를 연결할 때 Apple 알림 센터 서비스(ANCS)를 요구하도록 하는 옵션입니다.
    - let CBConnectPeripheralOptionStartDelayKey: String : 시스템이 연결되기 전에 지연이 발생함을 나타내는 옵션입니다.


7. CBCentralManager 주변 장치 목록 검색 관련 : 

  >> func retrieveConnectedPeripherals(withServices: [CBUUID]) -> [CBPeripheral] : 주어진 기준과 일치하는 서비스를 제공하는 시스템에 연결된 주변 장치 목록을 반환합니다.
  >> func retrievePeripherals(withIdentifiers: [UUID]) -> [CBPeripheral] : 식별자별로 알려진 주변 장치 목록을 반환합니다.


8. CBCentralManager 주변 장치 스캔 또는 스캔 중지 관련 : 

  >> func scanForPeripherals(withServices: [CBUUID]?, options: [String : Any]?) : 서비스를 광고하는 주변 장치를 검색합니다.
  >> func stopScan() : 중앙 관리자에게 주변 장치 스캔을 중지하도록 요청합니다.
  >> var isScanning: Bool : 중앙이 현재 스캐닝 중인지 여부를 나타내는 부울 값입니다.
  >> 주변 장치 스캐닝 옵션 : 
    - let CBCentralManagerScanOptionAllowDuplicatesKey: String : 중복 필터링 없이 스캔을 실행해야 하는지 여부를 지정하는 부울 값입니다.
    - let CBCentralManagerScanOptionSolicitedServiceUUIDsKey: String : 스캔하려는 서비스 UUID의 배열입니다.


9. CBCentralManager 기능 지원 검사 관련 : 

  >> class func supports(CBCentralManager.Feature) -> Bool : 장치가 특정 기능 세트를 지원하는지 여부를 나타내는 부울 값을 반환합니다.
  >> struct Feature : 장치별 기능의 옵션 세트입니다.


10. CBCentralManager 모니터링 속성 관련 : 

  >> var delegate: (any CBCentralManagerDelegate)? : 중앙 관리자 이벤트를 수신하려는 대리자 개체입니다.


11. CBCentralManager 연결 이벤트 수신 관련 : 

  >> func registerForConnectionEvents(options: [CBConnectionEventMatchingOption : Any]?) : 중앙 관리자가 주어진 옵션과 일치하는 연결을 만들 때 이벤트 알림을 등록합니다.  
  >> enum CBConnectionEvent : 피어의 연결 상태가 변경됩니다.
  >> struct CBConnectionEventMatchingOption : 연결 이벤트를 등록할 때 사용할 수 있는 옵션 집합입니다.

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

https://developer.apple.com/documentation/corebluetooth/cbcentralmanager

// --------------------------------------------------------------------------------------

 

반응형
Comments