共用方式為


CoreBluetooth 命名空間

CoreBluetooth 命名空間提供藍牙通訊的類別。

類別

AdvertisementData

CoreBluetooth 命名空間提供藍牙通訊的類別。

CBAdvertisement

用來查閱 NSDictionary 中做為參數 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

WroteCharacteristicValue提供 、的資料, E:CoreBluetooth.CBCharacteristicEventArgs.UpdatedNotificationState 和 E:CoreBluetooth.CBCharacteristicEventArgs.WroteCharacteristicValue E:CoreBluetooth.CBCharacteristicEventArgs.WroteCharacteristicValue事件。

CBDescriptor

周邊特性的不可變描述。 另請參閱 CBMutableDescriptor

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

FailedToConnectPeripheral提供 和 E:CoreBluetooth.CBPeripheralErrorEventArgs.FailedToConnectPeripheral事件的資料。

CBPeripheralEventArgs

提供 ConnectedPeripheral 事件的資料。

CBPeripheralManager

根據裝置的 GATT 資料庫管理已發佈的服務。

CBPeripheralManagerDelegate

CBPeripheralManager 委派物件。 新增與可用性、發佈、廣告和訂閱相關的事件方法。

CBPeripheralManagerDelegate_Extensions

介面的 ICBPeripheralManagerDelegate 擴充方法,以支援來自 CBPeripheralManagerDelegate 通訊協定的所有方法。

CBPeripheralManagerL2CapChannelOperationEventArgs

DidUnpublishL2CapChannel提供 和事件。

CBPeripheralManagerOpenL2CapChannelEventArgs

提供 DidOpenL2CapChannel 事件的資料。

CBPeripheralManagerServiceEventArgs

提供 ServiceAdded 事件的資料。

CBPeripheralManagerSubscriptionEventArgs

CharacteristicUnsubscribed提供 和事件的資料。

CBPeripheralOpenL2CapChannelEventArgs

提供 DidOpenL2CapChannel 事件的資料。

CBPeripheralServicesEventArgs

提供 ModifiedServices 事件的資料。

CBPeripheralsEventArgs

RetrievedPeripherals提供 和事件的資料。

CBRssiEventArgs

提供 RssiRead 事件的資料。

CBService

表示遠端周邊的服務。

CBServiceEventArgs

DiscoveredIncludedService提供 和 E:CoreBluetooth.CBServiceEventArgs.DiscoveredIncludedService事件的資料。

CBUUID

藍牙堆疊的通用唯一識別碼。

CBWillRestoreEventArgs

WillRestoreState提供 和 E: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 物件。 有兩種 CBPeerCBCentral :物件會掃描及取用物件所提供的 CBPeripheral 資料,這些物件會對應至提供藍牙 LE 裝置的資料。

一般而言,iOS 裝置會處於 CBCentral 角色,但也可以建立裝置為 CBPeripheral 的應用程式。

下列範例顯示從外部藍牙 LE 裝置取用資料之應用程式的一般初始化行為。 具有 CBCentral 的應用程式必須具有相關聯的 CBCentralManagerDelegate 委派物件,而且必須覆寫其 UpdatedState 方法。 覆寫必須檢查 的狀態 CBCentralManager ,並確認其為 PoweredOn

一般而言,應用程式會想要掃描藍牙 LE 周邊。 這是一個高能源函式,因此開發人員在尋找感興趣的 或在特定時間之後,應該呼叫 M:CoreBluetooth.CBManager.StopScan*CBPeripheral

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有零個或多個 CBService s,每個都有零或多個 CBCharacteristic s。 如果特性代表測量 (,例如活動訊號、時間、溫度等 ) ,該值將會在 屬性中 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);