CoreBluetooth 命名空间

CoreBluetooth 命名空间提供用于蓝牙通信的类。

AdvertisementData

CoreBluetooth 命名空间提供用于蓝牙通信的类。

CBAdvertisement

用于从 中 DiscoveredPeripheral(CBCentralManager, CBPeripheral, NSDictionary, NSNumber)作为参数接收的 NSDictionary 查找字典值的键。

CBATTErrorExtensions

CoreBluetooth.CBATTError 枚举的扩展方法。

CBATTRequest

用于读取或写入的属性协议请求。

CBATTRequestEventArgs

ReadRequestReceived 事件提供数据。

CBATTRequestsEventArgs

WriteRequestsReceived 事件提供数据。

CBAttribute

唯一标识蓝牙设备的类。

CBCentral

用于标识不是当前设备) 的中心 (。

CBCentralInitOptions

包含用于初始化蓝牙中央管理器的选项。

CBCentralManager

表示蓝牙 LE 中的本地中央设备。  使用 CBCentralManager 扫描、发现和连接到远程外围设备。

CBCentralManagerDelegate

对象的 CBCentralManager 委托对象。

CBCentralManagerDelegate_Extensions

接口的 ICBCentralManagerDelegate 扩展方法,以支持协议中的所有方法 CBCentralManagerDelegate

CBCharacteristic

远程外设的特征。

CBCharacteristicEventArgs

为 、E:CoreBluetooth.CBCharacteristicEventArgs.UpdatedCharacterteristicValue 提供数据WroteCharacteristicValueE:CoreBluetooth.CBCharacteristicEventArgs.UpdatedNotificationStateE:CoreBluetooth.CBCharacteristicEventArgs.WroteCharacteristicValue 事件。

CBDescriptor

外围设备特性的不可变说明。 另请参阅 CBMutableDescriptor

CBDescriptorEventArgs

WroteDescriptorValueE:CoreBluetooth.CBDescriptorEventArgs.WroteDescriptorValue 事件提供数据。

CBDiscoveredPeripheralEventArgs

DiscoveredPeripheral 事件提供数据。

CBErrorExtensions

CoreBluetooth.CBError 枚举的扩展方法。

CBL2CapChannel

CoreBluetooth 命名空间提供用于蓝牙通信的类。

CBManager

CoreBluetooth 命名空间提供用于蓝牙通信的类。

CBMutableCharacteristic

可变的 CBCharacteristic

CBMutableDescriptor

可变 T:Corebluetooth.CBDescriptor

CBMutableService

可变的 CBService

CBPeer

表示中央或外围蓝牙设备的类。

CBPeripheral

表示 CoreBluetooth 外围设备。

CBPeripheralDelegate

CBPeripheral委托对象。 提供对与发现、探索和与远程外围设备交互相关的事件调用的方法。

CBPeripheralDelegate_Extensions

接口的 ICBPeripheralDelegate 扩展方法,以支持协议中的所有方法 CBPeripheralDelegate

CBPeripheralErrorEventArgs

FailedToConnectPeripheralE:CoreBluetooth.CBPeripheralErrorEventArgs.FailedToConnectPeripheral 事件提供数据。

CBPeripheralEventArgs

ConnectedPeripheral 事件提供数据。

CBPeripheralManager

根据 T:Coreblutooth.CBPeripheral 设备的 GATT 数据库管理已发布的服务。

CBPeripheralManagerDelegate

CBPeripheralManager委托对象。 为与可用性、发布、广告和订阅相关的事件添加方法。

CBPeripheralManagerDelegate_Extensions

接口的 ICBPeripheralManagerDelegate 扩展方法,以支持协议中的所有方法 CBPeripheralManagerDelegate

CBPeripheralManagerL2CapChannelOperationEventArgs

DidUnpublishL2CapChannelE:CoreBluetooth.CBPeripheralManagerL2CapChannelOperationEventArgs.DidUnpublishL2CapChannel 事件提供数据。

CBPeripheralManagerOpenL2CapChannelEventArgs

DidOpenL2CapChannel 事件提供数据。

CBPeripheralManagerServiceEventArgs

ServiceAdded 事件提供数据。

CBPeripheralManagerSubscriptionEventArgs

CharacteristicUnsubscribedE:CoreBluetooth.CBPeripheralManagerSubscriptionEventArgs.CharacteristicUnsubscribed 事件提供数据。

CBPeripheralOpenL2CapChannelEventArgs

DidOpenL2CapChannel 事件提供数据。

CBPeripheralServicesEventArgs

ModifiedServices 事件提供数据。

CBPeripheralsEventArgs

RetrievedPeripheralsE:CoreBluetooth.CBPeripheralsEventArgs.RetrievedPeripherals 事件提供数据。

CBRssiEventArgs

RssiRead 事件提供数据。

CBService

表示远程外设的服务。

CBServiceEventArgs

DiscoveredIncludedServiceE:CoreBluetooth.CBServiceEventArgs.DiscoveredIncludedService 事件提供数据。

CBUUID

蓝牙堆栈的通用唯一标识符。

CBWillRestoreEventArgs

WillRestoreStateE:CoreBluetooth.CBWillRestoreEventArgs.WillRestoreState 事件提供数据。

PeripheralConnectionOptions

外围连接选项。

PeripheralScanningOptions

调用 ScanForPeripherals(CBUUID[], NSDictionary)中的 options 参数的可能值。

RestoredState

CoreBluetooth 命名空间提供用于蓝牙通信的类。

StartAdvertisingOptions

管理对 M:CoreBluetooth.StartAdvertising* 方法使用的选项的访问。

接口

ICBCentralManagerDelegate

表示所需方法的接口 ((如果协议 CBCentralManagerDelegate有任何) )。

ICBPeripheralDelegate

表示所需方法的接口 ((如果协议 CBPeripheralDelegate有任何) )。

ICBPeripheralManagerDelegate

表示所需方法的接口 ((如果协议 CBPeripheralManagerDelegate有任何) )。

枚举

CBATTError

GATT 服务器返回的错误。

CBAttributePermissions

枚举特征值的读取、写入和加密权限。

CBCentralManagerState

枚举 的可能状态 CBCentralManager

CBCharacteristicProperties

特征的可能属性。 一个特征可能具有多个属性。

CBCharacteristicWriteType

枚举特征值的可能写入类型。

CBError

蓝牙 LE 事务期间可能出现错误。

CBManagerState

CoreBluetooth 命名空间提供用于蓝牙通信的类。

CBPeripheralManagerAuthorizationStatus

枚举 的可能状态 CBPeripheralManager

CBPeripheralManagerConnectionLatency

的连接延迟 CBPeripheralManager

CBPeripheralManagerState

枚举 的可能状态 CBPeripheralManager

CBPeripheralState

枚举 的可能连接状态 CBPeripheral

注解

CoreBluetooth 命名空间允许开发人员使用低功耗蓝牙 (蓝牙 LE) 设备。

蓝牙 LE 模型围绕 CBPeer 对象展开。 有两种类型的 CBPeer对象: CBCentral 扫描和使用对象提供 CBPeripheral 的数据,这些对象对应于提供数据的蓝牙 LE 设备。

通常,iOS 设备将处于 角色 CBCentral 中,但也可以创建设备为 CBPeripheral的应用。

以下示例演示使用外部蓝牙 LE 设备数据的应用的典型初始化行为。 具有 CBCentral 的应用程序必须具有关联的 CBCentralManagerDelegate 委托对象,并且必须重写它的 方法 UpdatedState 。 重写必须检查 的状态CBCentralManager,并确认它是 PoweredOn

通常,应用程序需要扫描蓝牙 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 零个或多个 CBServices,其中每个都有零个或多个 CBCharacteristics。 如果特征表示测量 ((如检测信号、时间、温度等 ) ),则 值将位于 属性中 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);