Freigeben über


CoreBluetooth Namespace

Der CoreBluetooth-Namespace stellt Klassen für die Bluetooth-Kommunikation bereit.

Klassen

AdvertisementData

Der CoreBluetooth-Namespace stellt Klassen für die Bluetooth-Kommunikation bereit.

CBAdvertisement

Schlüssel, die zum Suchen von Wörterbuchwerten aus dem NSDictionary als Parameter in DiscoveredPeripheral(CBCentralManager, CBPeripheral, NSDictionary, NSNumber)verwendet werden.

CBATTErrorExtensions

Erweiterungsmethoden für die CoreBluetooth.CBATTError-Enumeration.

CBATTRequest

Eine Attributprotokollanforderung zum Lesen oder Schreiben.

CBATTRequestEventArgs

Stellt Daten für das ReadRequestReceived-Ereignis bereit.

CBATTRequestsEventArgs

Stellt Daten für das WriteRequestsReceived-Ereignis bereit.

CBAttribute

Klasse, die ein Bluetooth-Gerät eindeutig identifiziert.

CBCentral

Wird verwendet, um Zentrale zu identifizieren (die nicht das aktuelle Gerät sind).

CBCentralInitOptions

Enthält Optionen zum Initialisieren eines zentralen Bluetooth-Managers.

CBCentralManager

Stellt das lokale zentrale Gerät in Bluetooth LE dar.  Verwenden Sie cbCentralManager zum Scannen, Ermitteln und Herstellen einer Verbindung mit Remoteperipheriegeräten.

CBCentralManagerDelegate

Delegieren von Objekten für CBCentralManager Objekte.

CBCentralManagerDelegate_Extensions

Erweiterungsmethoden für die ICBCentralManagerDelegate Schnittstelle, um alle Methoden aus dem CBCentralManagerDelegate Protokoll zu unterstützen.

CBCharacteristic

Merkmale eines Remoteperipheriegeräts.

CBCharacteristicEventArgs

Stellt Daten für , WroteCharacteristicValueE:CoreBluetooth.CBCharacteristicEventArgs.UpdatedCharacterteristicValue bereit, E:CoreBluetooth.CBCharacteristicEventArgs.UpdatedNotificationState and E: CoreBluetooth.CBCharacteristicEventArgs.WroteCharacteristicValue-Ereignisse.

CBDescriptor

Eine unveränderliche Beschreibung des Merkmals eines Peripheriegeräts. Siehe auch CBMutableDescriptor.

CBDescriptorEventArgs

Stellt Daten für die WroteDescriptorValue Ereignisse E:CoreBluetooth.CBDescriptorEventArgs.WroteDescriptorValue bereit.

CBDiscoveredPeripheralEventArgs

Stellt Daten für das DiscoveredPeripheral-Ereignis bereit.

CBErrorExtensions

Erweiterungsmethoden für die CoreBluetooth.CBError-Enumeration.

CBL2CapChannel

Der CoreBluetooth-Namespace stellt Klassen für die Bluetooth-Kommunikation bereit.

CBManager

Der CoreBluetooth-Namespace stellt Klassen für die Bluetooth-Kommunikation bereit.

CBMutableCharacteristic

Eine veränderbare CBCharacteristic.

CBMutableDescriptor

Ein veränderbarer T:Corebluetooth.CBDescriptor.

CBMutableService

Eine veränderbare CBService.

CBPeer

Klasse, die ein zentrales oder perhiphäres Bluetooth-Gerät darstellt.

CBPeripheral

Stellt ein CoreBluetooth-Peripheriegerät dar.

CBPeripheralDelegate

Delegatobjekt für CBPeripheral. Stellt Methoden bereit, die für Ereignisse im Zusammenhang mit der Ermittlung, Untersuchung und Interaktion mit einem Remoteperipheriegerät aufgerufen werden.

CBPeripheralDelegate_Extensions

Erweiterungsmethoden für die ICBPeripheralDelegate Schnittstelle, um alle Methoden aus dem CBPeripheralDelegate Protokoll zu unterstützen.

CBPeripheralErrorEventArgs

Stellt Daten für die FailedToConnectPeripheralE:CoreBluetooth.CBPeripheralErrorEventArgs.FailedToConnectPeripheral bereit.

CBPeripheralEventArgs

Stellt Daten für das ConnectedPeripheral-Ereignis bereit.

CBPeripheralManager

Verwaltet veröffentlichte Dienste gemäß der GATT-Datenbank des T:Coreblutooth.CBPeripheral-Geräts .

CBPeripheralManagerDelegate

Delegatobjekt für CBPeripheralManager. Fügt Methoden für Ereignisse im Zusammenhang mit Verfügbarkeit, Veröffentlichung, Werbung und Abonnement hinzu.

CBPeripheralManagerDelegate_Extensions

Erweiterungsmethoden für die ICBPeripheralManagerDelegate Schnittstelle, um alle Methoden aus dem CBPeripheralManagerDelegate Protokoll zu unterstützen.

CBPeripheralManagerL2CapChannelOperationEventArgs

Stellt Daten für die DidUnpublishL2CapChannelE:CoreBluetooth.CBPeripheralManagerL2CapChannelOperationEventArgs.DidUnpublishL2CapChannel-Ereignisse bereit.

CBPeripheralManagerOpenL2CapChannelEventArgs

Stellt Daten für das DidOpenL2CapChannel-Ereignis bereit.

CBPeripheralManagerServiceEventArgs

Stellt Daten für das ServiceAdded-Ereignis bereit.

CBPeripheralManagerSubscriptionEventArgs

Stellt Daten für die CharacteristicUnsubscribedE:CoreBluetooth.CBPeripheralManagerSubscriptionEventArgs.CharacteristicUnsubscribed-Ereignisse bereit.

CBPeripheralOpenL2CapChannelEventArgs

Stellt Daten für das DidOpenL2CapChannel-Ereignis bereit.

CBPeripheralServicesEventArgs

Stellt Daten für das ModifiedServices-Ereignis bereit.

CBPeripheralsEventArgs

Stellt Daten für die RetrievedPeripheralsE:CoreBluetooth.CBPeripheralsEventArgs.RetrievedPeripherals bereit.

CBRssiEventArgs

Stellt Daten für das RssiRead-Ereignis bereit.

CBService

Stellt die Dienste eines Remoteperipheriegeräts dar.

CBServiceEventArgs

Stellt Daten für die DiscoveredIncludedServiceE:CoreBluetooth.CBServiceEventArgs.DiscoveredIncludedService bereit.

CBUUID

Universelle eindeutige Bezeichner für den Bluetooth-Stapel.

CBWillRestoreEventArgs

Stellt Daten für die WillRestoreStateE:CoreBluetooth.CBWillRestoreEventArgs.WillRestoreState bereit.

PeripheralConnectionOptions

Verbindungsoptionen für Peripheriegeräte.

PeripheralScanningOptions

Mögliche Werte für den Optionsparameter in Aufrufen von ScanForPeripherals(CBUUID[], NSDictionary).

RestoredState

Der CoreBluetooth-Namespace stellt Klassen für die Bluetooth-Kommunikation bereit.

StartAdvertisingOptions

Verwaltet den Zugriff auf optionen, die von M:CoreBluetooth.StartAdvertising* -Methode verwendet werden.

Schnittstellen

ICBCentralManagerDelegate

Schnittstelle, die die erforderlichen Methoden (falls vorhanden) des Protokolls CBCentralManagerDelegatedarstellt.

ICBPeripheralDelegate

Schnittstelle, die die erforderlichen Methoden (falls vorhanden) des Protokolls CBPeripheralDelegatedarstellt.

ICBPeripheralManagerDelegate

Schnittstelle, die die erforderlichen Methoden (falls vorhanden) des Protokolls CBPeripheralManagerDelegatedarstellt.

Enumerationen

CBATTError

Von einem GATT-Server zurückgegebene Fehler.

CBAttributePermissions

Listet die Lese-, Schreib- und Verschlüsselungsberechtigungen für die Werte eines Merkmals auf.

CBCentralManagerState

Listet mögliche Zustände eines auf CBCentralManager.

CBCharacteristicProperties

Die möglichen Eigenschaften eines Merkmals. Ein Merkmal kann mehrere Eigenschaften aufweisen.

CBCharacteristicWriteType

Listet die möglichen Schreibtypen auf den Wert eines Merkmals auf.

CBError

Fehler bei Bluetooth LE-Transaktionen möglich.

CBManagerState

Der CoreBluetooth-Namespace stellt Klassen für die Bluetooth-Kommunikation bereit.

CBPeripheralManagerAuthorizationStatus

Listet die möglichen Zustände von CBPeripheralManagerauf.

CBPeripheralManagerConnectionLatency

Die Verbindungslatenz von CBPeripheralManager.

CBPeripheralManagerState

Listet die möglichen Zustände von CBPeripheralManagerauf.

CBPeripheralState

Listet die möglichen Verbindungszustände eines auf CBPeripheral.

Hinweise

Mit dem CoreBluetooth-Namespace können Entwickler mit Bluetooth Low Energy-Geräten (Bluetooth LE) arbeiten.

Das Bluetooth LE-Modell dreht sich um CBPeer Objekte. Es gibt zwei Arten von CBPeerObjekten: CBCentral Objekte, die Daten scannen und nutzen, die von Objekten bereitgestellt werden CBPeripheral , die Daten bereitstellenden Bluetooth LE-Geräten entsprechen.

Im Allgemeinen ist das iOS-Gerät in der CBCentral Rolle, aber es ist auch möglich, Apps zu erstellen, in denen das Gerät ein CBPeripheralist.

Das folgende Beispiel zeigt das typische Initialisierungsverhalten einer App, die Daten von externen Bluetooth LE-Geräten nutzt. Anwendungen, die über ein CBCentral verfügen, müssen über ein zugeordnetes CBCentralManagerDelegate Delegatobjekt verfügen und dessen Methode überschreiben UpdatedState . Die Überschreibung muss den Zustand des CBCentralManager überprüfen und bestätigen, dass es ist PoweredOn.

In der Regel möchten Anwendungen nach Bluetooth LE-Peripheriegeräten suchen. Dies ist eine hochenergetischen Funktion, daher sollten Entwickler M:CoreBluetooth.CBManager.StopScan* aufrufen, nachdem sie den CBPeripheral gefunden haben, an dem sie interessiert sind, oder nach einer bestimmten Zeit.

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... 
}     

Die DiscoveredPeripheral Methode kann für ein einzelnes physisches Gerät mehrmals aufgerufen werden. Sobald Anwendungsentwickler über einen Verweis auf den verfügen, an dem CBPeripheral sie interessiert sind, sollten sie diese Referenz für weitere Arbeiten beibehalten und aufrufen StopScan.

Mit einem Verweis auf einen ermittelten CBPeripheralkönnen Entwickler dann eine Verbindung mit diesem herstellen, wie im folgenden Beispiel gezeigt.

A CBPeripheral hat null oder mehr CBServices, von denen jede null oder mehr CBCharacteristics hat. Wenn das Merkmal ein Maß darstellt (z. B. Takt, Zeit, Temperatur usw.), befindet sich der Wert in der Value -Eigenschaft.

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);