다음을 통해 공유


CoreBluetooth 네임스페이스

CoreBluetooth 네임스페이스는 Bluetooth 통신을 위한 클래스를 제공합니다.

클래스

AdvertisementData

CoreBluetooth 네임스페이스는 Bluetooth 통신을 위한 클래스를 제공합니다.

CBAdvertisement

에서 매개 변수 DiscoveredPeripheral(CBCentralManager, CBPeripheral, NSDictionary, NSNumber)로 수신된 NSDictionary의 사전 값을 조회하는 데 사용되는 키입니다.

CBATTErrorExtensions

CoreBluetooth.CBATTError 열거형에 대한 확장 메서드입니다.

CBATTRequest

읽기 또는 쓰기에 대한 특성 프로토콜 요청입니다.

CBATTRequestEventArgs

ReadRequestReceived 이벤트에 대한 데이터를 제공합니다.

CBATTRequestsEventArgs

WriteRequestsReceived 이벤트에 대한 데이터를 제공합니다.

CBAttribute

Bluetooth 디바이스를 고유하게 식별하는 클래스입니다.

CBCentral

중앙(현재 디바이스가 아님)을 식별하는 데 사용됩니다.

CBCentralInitOptions

Bluetooth 중앙 관리자를 초기화하는 옵션이 포함되어 있습니다.

CBCentralManager

Bluetooth LE의 로컬 중앙 디바이스를 나타냅니다.  CBCentralManager를 사용하여 원격 주변 장치를 검사, 검색 및 연결합니다.

CBCentralManagerDelegate

개체에 대한 개체를 CBCentralManager 위임합니다.

CBCentralManagerDelegate_Extensions

프로토콜의 모든 메서드를 ICBCentralManagerDelegate 지원하기 위해 인터페이스에 대한 확장 메서드입니다 CBCentralManagerDelegate .

CBCharacteristic

원격 주변 디바이스의 특성입니다.

CBCharacteristicEventArgs

, E:CoreBluetooth.CBCharacteristicEventArgs.UpdatedCharacterteristicValue에 대한 WroteCharacteristicValue데이터를 제공합니다. E:CoreBluetooth.CBCharacteristicEventArgs.UpdatedNotificationStateE: CoreBluetooth.CBCharacteristicEventArgs.WroteCharacteristicValue 이벤트입니다.

CBDescriptor

주변 장치 특성에 대한 변경할 수 없는 설명입니다. CBMutableDescriptor을 참조하세요.

CBDescriptorEventArgs

E:CoreBluetooth.CBDescriptorEventArgs.WroteDescriptorValue 이벤트에 대한 WroteDescriptorValue 데이터를 제공합니다.

CBDiscoveredPeripheralEventArgs

DiscoveredPeripheral 이벤트에 대한 데이터를 제공합니다.

CBErrorExtensions

CoreBluetooth.CBError 열거형에 대한 확장 메서드입니다.

CBL2CapChannel

CoreBluetooth 네임스페이스는 Bluetooth 통신을 위한 클래스를 제공합니다.

CBManager

CoreBluetooth 네임스페이스는 Bluetooth 통신을 위한 클래스를 제공합니다.

CBMutableCharacteristic

변경 가능한 입니다 CBCharacteristic.

CBMutableDescriptor

변경 가능한 T:Corebluetooth.CBDescriptor.

CBMutableService

변경 가능한 입니다 CBService.

CBPeer

중앙 또는 주변 Bluetooth 디바이스를 나타내는 클래스입니다.

CBPeripheral

CoreBluetooth 주변 장치를 나타냅니다.

CBPeripheralDelegate

에 대한 개체를 위임합니다 CBPeripheral. 원격 주변 장치와의 검색, 탐색 및 상호 작용과 관련된 이벤트에 대해 호출되는 메서드를 제공합니다.

CBPeripheralDelegate_Extensions

프로토콜의 모든 메서드를 ICBPeripheralDelegate 지원하기 위해 인터페이스에 대한 확장 메서드입니다 CBPeripheralDelegate .

CBPeripheralErrorEventArgs

E:CoreBluetooth.CBPeripheralErrorEventArgs.FailedToConnectPeripheral 이벤트에 대한 FailedToConnectPeripheral 데이터를 제공합니다.

CBPeripheralEventArgs

ConnectedPeripheral 이벤트에 대한 데이터를 제공합니다.

CBPeripheralManager

디바이스의 GATT 데이터베이스당 게시된 서비스를 관리합니다.

CBPeripheralManagerDelegate

에 대한 개체를 위임합니다 CBPeripheralManager. 가용성, 게시, 광고 및 구독과 관련된 이벤트에 대한 메서드를 추가합니다.

CBPeripheralManagerDelegate_Extensions

프로토콜의 모든 메서드를 ICBPeripheralManagerDelegate 지원하기 위해 인터페이스에 대한 확장 메서드입니다 CBPeripheralManagerDelegate .

CBPeripheralManagerL2CapChannelOperationEventArgs

E:CoreBluetooth.CBPeripheralManagerL2CapChannelOperationEventArgs.DidUnpublishL2CapChannel 이벤트에 대한 DidUnpublishL2CapChannel 데이터를 제공합니다.

CBPeripheralManagerOpenL2CapChannelEventArgs

DidOpenL2CapChannel 이벤트에 대한 데이터를 제공합니다.

CBPeripheralManagerServiceEventArgs

ServiceAdded 이벤트에 대한 데이터를 제공합니다.

CBPeripheralManagerSubscriptionEventArgs

E:CoreBluetooth.CBPeripheralManagerSubscriptionEventArgs.CharacteristicUnsubscribed 이벤트에 대한 CharacteristicUnsubscribed 데이터를 제공합니다.

CBPeripheralOpenL2CapChannelEventArgs

DidOpenL2CapChannel 이벤트에 대한 데이터를 제공합니다.

CBPeripheralServicesEventArgs

ModifiedServices 이벤트에 대한 데이터를 제공합니다.

CBPeripheralsEventArgs

E:CoreBluetooth.CBPeripheralsEventArgs.RetrievedPeripherals 이벤트에 대한 RetrievedPeripherals 데이터를 제공합니다.

CBRssiEventArgs

RssiRead 이벤트에 대한 데이터를 제공합니다.

CBService

원격 주변 디바이스의 서비스를 나타냅니다.

CBServiceEventArgs

E:CoreBluetooth.CBServiceEventArgs.DiscoveredIncludedService 이벤트에 대한 DiscoveredIncludedService 데이터를 제공합니다.

CBUUID

Bluetooth 스택에 대한 유니버설 고유 식별자입니다.

CBWillRestoreEventArgs

E:CoreBluetooth.CBWillRestoreEventArgs.WillRestoreState 이벤트에 대한 WillRestoreState 데이터를 제공합니다.

PeripheralConnectionOptions

주변 장치 연결 옵션입니다.

PeripheralScanningOptions

에 대한 호출에서 options 매개 변수에 대한 가능한 값입니다 ScanForPeripherals(CBUUID[], NSDictionary).

RestoredState

CoreBluetooth 네임스페이스는 Bluetooth 통신을 위한 클래스를 제공합니다.

StartAdvertisingOptions

CoreBluetooth.StartAdvertising* 메서드에서 사용하는 옵션에 대한 액세스를 관리합니다.

인터페이스

ICBCentralManagerDelegate

프로토콜 CBCentralManagerDelegate의 필수 메서드(있는 경우)를 나타내는 인터페이스입니다.

ICBPeripheralDelegate

프로토콜 CBPeripheralDelegate의 필수 메서드(있는 경우)를 나타내는 인터페이스입니다.

ICBPeripheralManagerDelegate

프로토콜 CBPeripheralManagerDelegate의 필수 메서드(있는 경우)를 나타내는 인터페이스입니다.

열거형

CBATTError

GATT 서버에서 반환된 오류입니다.

CBAttributePermissions

특성 값에 대한 읽기, 쓰기 및 암호화 권한을 열거합니다.

CBCentralManagerState

의 가능한 상태를 열거합니다 CBCentralManager.

CBCharacteristicProperties

특성의 가능한 속성입니다. 특성에는 여러 속성이 있을 수 있습니다.

CBCharacteristicWriteType

특성의 값에 가능한 쓰기 형식을 열거합니다.

CBError

Bluetooth LE 트랜잭션 중에 오류가 발생할 수 있습니다.

CBManagerState

CoreBluetooth 네임스페이스는 Bluetooth 통신을 위한 클래스를 제공합니다.

CBPeripheralManagerAuthorizationStatus

의 가능한 상태를 열거합니다 CBPeripheralManager.

CBPeripheralManagerConnectionLatency

CBPeripheralManager연결 대기 시간입니다.

CBPeripheralManagerState

의 가능한 상태를 열거합니다 CBPeripheralManager.

CBPeripheralState

의 가능한 연결 상태를 열거합니다 CBPeripheral.

설명

CoreBluetooth 네임스페이스를 사용하면 개발자가 Bluetooth LE(Bluetooth Low Energy) 디바이스로 작업할 수 있습니다.

Bluetooth LE 모델은 개체를 중심으로 CBPeer 회전합니다. 두 가지 종류 CBPeerCBCentral 가 있습니다. 데이터 제공 Bluetooth LE 디바이스에 CBPeripheral 해당하는 개체에서 제공하는 데이터를 검색하고 사용하는 개체입니다.

일반적으로 iOS 디바이스는 CBCentral 역할에 있지만 디바이스가 인 앱을 만들 수도 있습니다 CBPeripheral.

다음 예제에서는 외부 Bluetooth LE 디바이스의 데이터를 사용하는 앱의 일반적인 초기화 동작을 보여 줍니다. 가 있는 애플리케이션에는 CBCentral 연결된 CBCentralManagerDelegate 대리자 개체가 있어야 하며 메서드를 재정의 UpdatedState 해야 합니다. 재정의는 의 CBCentralManager 상태를 검사 및 가 인지 PoweredOn확인해야 합니다.

일반적으로 애플리케이션은 Bluetooth LE 주변 장치를 검색하려고 합니다. 이는 고에너지 기능이므로 개발자는 관심 있는 를 찾 CBPeripheral 은 후 또는 일정 시간 후에 M:CoreBluetooth.CBManager.StopScan*을 호출해야 합니다.

public class MySimpleCBCentralManagerDelegate : CBCentralManagerDelegate
{
		override public void UpdatedState (CBCentralManager mgr)
		{
			if (mgr.State == CBCentralManagerState.PoweredOn) {
				//Passing in null scans for all peripherals. Peripherals can be targeted by using CBUIIDs
				CBUUID[] cbuuids = null;
				mgr.ScanForPeripherals (cbuuids); //Initiates async calls of DiscoveredPeripheral
				//Timeout after 30 seconds
				var timer = new Timer (30 * 1000);
				timer.Elapsed += (sender, e) => mgr.StopScan();
			} else {
				//Invalid state -- Bluetooth powered down, unavailable, etc.
				System.Console.WriteLine ("Bluetooth is not available");
			}
		}

		public override void DiscoveredPeripheral (CBCentralManager central, CBPeripheral peripheral, NSDictionary advertisementData, NSNumber RSSI)
		{
			Console.WriteLine ("Discovered {0}, data {1}, RSSI {2}", peripheral.Name, advertisementData, RSSI);
		}
}    

public partial class HelloBluetoothCSharpViewController : UIViewController
{
    MySimpleCBCentralManagerDelegate myDel;

		public override void ViewDidLoad ()
		{
			base.ViewDidLoad ();

      //Important to retain reference, else will be GC'ed
			myDel = new MySimpleCBCentralManagerDelegate ();
			var myMgr = new CBCentralManager (myDel, DispatchQueue.CurrentQueue);

		}
//...etc... 
}     

메서드는 DiscoveredPeripheral 단일 물리적 디바이스에 대해 여러 번 호출될 수 있습니다. 애플리케이션 개발자가 관심 있는 에 대한 참조 CBPeripheral 가 있으면 추가 작업을 위해 해당 참조를 유지하고 를 호출 StopScan해야 합니다.

개발자는 검색된 CBPeripheral에 대한 참조를 사용하여 다음 예제와 같이 연결할 수 있습니다.

CBPeripheral 에는 각각 0개 이상의 CBServiceCBCharacteristics가 있습니다. 특성이 측정값(예: 하트비트, 시간, 온도 등)을 나타내는 경우 값은 속성에 Value 있습니다.

public class SimplePeripheralDelegate : CBPeripheralDelegate
{
	public override void DiscoveredService (CBPeripheral peripheral, NSError error)
	{
		System.Console.WriteLine ("Discovered a service");
		foreach (var service in peripheral.Services) {
			Console.WriteLine (service.ToString ()); 
			peripheral.DiscoverCharacteristics (service);
		}
	}

	public override void DiscoveredCharacteristic (CBPeripheral peripheral, CBService service, NSError error)
	{
		System.Console.WriteLine ("Discovered characteristics of " + peripheral);
		foreach (var c in service.Characteristics) {
			Console.WriteLine (c.ToString ());
			peripheral.ReadValue (c);
		}
	}

	public override void UpdatedValue (CBPeripheral peripheral, CBDescriptor descriptor, NSError error)
	{
		Console.WriteLine ("Value of characteristic " + descriptor.Characteristic + " is " + descriptor.Value);
	}

	public override void UpdatedCharacterteristicValue (CBPeripheral peripheral, CBCharacteristic characteristic, NSError error)
	{
		Console.WriteLine ("Value of characteristic " + characteristic.ToString () + " is " + characteristic.Value);
	}
}

//...
mgr = new CBCentralManager (myCentralDelegate, DispatchQueue.CurrentQueue);

mgr.ConnectedPeripheral += (s, e) => {
	activePeripheral = e.Peripheral;
	System.Console.WriteLine ("Connected to " + activePeripheral.Name);


	if (activePeripheral.Delegate == null) {
		activePeripheral.Delegate = new SimplePeripheralDelegate ();
    //Begins asynchronous discovery of services
		activePeripheral.DiscoverServices ();
	}
};

//Connect to peripheral, triggering call to ConnectedPeripheral event handled above 
mgr.ConnectPeripheral (myPeripheral);