CoreBluetooth Spazio dei nomi

Lo spazio dei nomi CoreBluetooth fornisce classi per la comunicazione Bluetooth.

Classi

Nome Descrizione
AdvertisementData

Lo spazio dei nomi CoreBluetooth fornisce classi per la comunicazione Bluetooth.

CBAdvertisement

Chiavi usate per cercare i valori del dizionario dal NSDictionary ricevuto come parametro in DiscoveredPeripheral(CBCentralManager, CBPeripheral, NSDictionary, NSNumber).

CBAncsAuthorizationUpdateEventArgs

Fornisce dati per un evento basato su un metodo di protocollo Objective-C.

CBATTErrorExtensions

Metodi di estensione per l'enumerazione CBATTError .

CBATTRequest

Richiesta del protocollo di attributo per la lettura o la scrittura.

CBATTRequestEventArgs

Fornisce dati per un evento basato su un metodo di protocollo Objective-C.

CBATTRequestsEventArgs

Fornisce dati per un evento basato su un metodo di protocollo Objective-C.

CBAttribute

Classe che identifica in modo univoco un dispositivo Bluetooth.

CBCentral

Usato per identificare i centrali (che non sono il dispositivo corrente).

CBCentralInitOptions

Contiene le opzioni per l'inizializzazione di un gestore centrale Bluetooth.

CBCentralManager

Rappresenta il dispositivo centrale locale in Bluetooth LE.  Usare CBCentralManager per analizzare, individuare e connettersi alle periferiche remote.

CBCentralManagerDelegate

Delegare gli oggetti per CBCentralManager gli oggetti .

CBCentralManagerDelegate_Extensions

Metodi di estensione per l'interfaccia ICBCentralManagerDelegate per supportare tutti i metodi del protocollo CBCentralManagerDelegate.

CBChannelSoundingProcedureResults

Contiene i risultati di una procedura di audio del canale.

CBChannelSoundingProcedureResultsEventArgs

Fornisce dati per un evento basato su un metodo di protocollo Objective-C.

CBChannelSoundingSessionConfiguration

Configura il ruolo assunto da una periferica in una sessione di audio del canale.

CBCharacteristic

Caratteristiche di una periferica remota.

CBCharacteristicEventArgs

Fornisce dati per un evento basato su un metodo di protocollo Objective-C.

CBConnectionEventMatchingOptions

Lo spazio dei nomi CoreBluetooth fornisce classi per la comunicazione Bluetooth.

CBConnectPeripheralOptions

Lo spazio dei nomi CoreBluetooth fornisce classi per la comunicazione Bluetooth.

CBDescriptor

Descrizione non modificabile della caratteristica di una periferica. Vedi anche CBMutableDescriptor.

CBDescriptorEventArgs

Fornisce dati per un evento basato su un metodo di protocollo Objective-C.

CBDiscoveredPeripheralEventArgs

Fornisce dati per un evento basato su un metodo di protocollo Objective-C.

CBErrorExtensions

Metodi di estensione per l'enumerazione CBError .

CBL2CapChannel

Lo spazio dei nomi CoreBluetooth fornisce classi per la comunicazione Bluetooth.

CBManager

Lo spazio dei nomi CoreBluetooth fornisce classi per la comunicazione Bluetooth.

CBMutableCharacteristic

Oggetto modificabile CBCharacteristic.

CBMutableDescriptor

Oggetto modificabile CBDescriptor.

CBMutableService

Oggetto modificabile CBService.

CBPeer

Classe che rappresenta un dispositivo Bluetooth centrale o perhifero.

CBPeripheral

Rappresenta una periferica CoreBluetooth.

CBPeripheralConnectionEventEventArgs

Fornisce dati per un evento basato su un metodo di protocollo Objective-C.

CBPeripheralDelegate

Oggetto delegato per CBPeripheral. Fornisce metodi chiamati sugli eventi relativi all'individuazione, all'esplorazione e all'interazione con una periferica remota.

CBPeripheralDelegate_Extensions

Metodi di estensione per l'interfaccia ICBPeripheralDelegate per supportare tutti i metodi del protocollo CBPeripheralDelegate.

CBPeripheralDiconnectionEventEventArgs

Fornisce dati per un evento basato su un metodo di protocollo Objective-C.

CBPeripheralErrorEventArgs

Fornisce dati per un evento basato su un metodo di protocollo Objective-C.

CBPeripheralEventArgs

Fornisce dati per un evento basato su un metodo di protocollo Objective-C.

CBPeripheralManager

Gestisce i servizi pubblicati in base al CBPeripheral database GATT del dispositivo.

CBPeripheralManagerDelegate

Oggetto delegato per CBPeripheralManager. Aggiunge metodi per gli eventi relativi alla disponibilità, alla pubblicazione, alla pubblicità e alla sottoscrizione.

CBPeripheralManagerDelegate_Extensions

Metodi di estensione per l'interfaccia ICBPeripheralManagerDelegate per supportare tutti i metodi del protocollo CBPeripheralManagerDelegate.

CBPeripheralManagerL2CapChannelOperationEventArgs

Fornisce dati per un evento basato su un metodo di protocollo Objective-C.

CBPeripheralManagerOpenL2CapChannelEventArgs

Fornisce dati per un evento basato su un metodo di protocollo Objective-C.

CBPeripheralManagerServiceEventArgs

Fornisce dati per un evento basato su un metodo di protocollo Objective-C.

CBPeripheralManagerSubscriptionEventArgs

Fornisce dati per un evento basato su un metodo di protocollo Objective-C.

CBPeripheralOpenL2CapChannelEventArgs

Fornisce dati per un evento basato su un metodo di protocollo Objective-C.

CBPeripheralServicesEventArgs

Fornisce dati per un evento basato su un metodo di protocollo Objective-C.

CBRssiEventArgs

Fornisce dati per un evento basato su un metodo di protocollo Objective-C.

CBService

Rappresenta i servizi di una periferica remota.

CBServiceEventArgs

Fornisce dati per un evento basato su un metodo di protocollo Objective-C.

CBUUID

Identificatori univoci universali per lo stack Bluetooth.

CBWillRestoreEventArgs

Fornisce dati per un evento basato su un metodo di protocollo Objective-C.

PeripheralConnectionOptions

Opzioni di connessione periferiche.

PeripheralScanningOptions

Valori possibili per il parametro options nelle chiamate a ScanForPeripherals(CBUUID[], NSDictionary).

RestoredState

Lo spazio dei nomi CoreBluetooth fornisce classi per la comunicazione Bluetooth.

StartAdvertisingOptions

Gestisce l'accesso alle opzioni usate da StartAdvertising(StartAdvertisingOptions).

Interfacce

Nome Descrizione
ICBCentralManagerDelegate

Delegare gli oggetti per CBCentralManager gli oggetti .

ICBPeripheralDelegate

Oggetto delegato per CBPeripheral. Fornisce metodi chiamati sugli eventi relativi all'individuazione, all'esplorazione e all'interazione con una periferica remota.

ICBPeripheralManagerDelegate

Oggetto delegato per CBPeripheralManager. Aggiunge metodi per gli eventi relativi alla disponibilità, alla pubblicazione, alla pubblicità e alla sottoscrizione.

Enumerazioni

Nome Descrizione
CBATTError

Errori restituiti da un server GATT.

CBAttributePermissions

Enumera le autorizzazioni di lettura, scrittura e crittografia per i valori di una caratteristica.

CBCentralManagerFeature

Lo spazio dei nomi CoreBluetooth fornisce classi per la comunicazione Bluetooth.

CBCentralManagerState

Enumera i possibili stati di un oggetto CBCentralManager.

CBChannelSoundingSessionConfigurationRole

Specifica il ruolo assunto da una periferica in una sessione di audio del canale.

CBCharacteristicProperties

Proprietà possibili di una caratteristica. Una caratteristica può avere più proprietà.

CBCharacteristicWriteType

Enumera i possibili tipi di scritture nel valore di una caratteristica.

CBConnectionEvent

Lo spazio dei nomi CoreBluetooth fornisce classi per la comunicazione Bluetooth.

CBError

Errori possibili durante le transazioni Bluetooth LE.

CBManagerAuthorization

Lo spazio dei nomi CoreBluetooth fornisce classi per la comunicazione Bluetooth.

CBManagerState

Lo spazio dei nomi CoreBluetooth fornisce classi per la comunicazione Bluetooth.

CBPeripheralManagerConnectionLatency

Latenza di connessione dell'oggetto CBPeripheralManager.

CBPeripheralManagerState

Enumera i possibili stati dell'oggetto CBPeripheralManager.

CBPeripheralState

Enumera i possibili stati di connessione di un oggetto CBPeripheral.

Commenti

Lo spazio dei nomi CoreBluetooth consente agli sviluppatori di lavorare con dispositivi Bluetooth Low Energy (Bluetooth LE).

Il modello Bluetooth LE ruota intorno agli CBPeer oggetti. Esistono due tipi di CBPeeroggetti che CBCentral analizzano e utilizzano dati e CBPeripheral oggetti che corrispondono ai dispositivi Bluetooth LE che forniscono dati.

In genere, il dispositivo iOS sarà nel CBCentral ruolo , ma è anche possibile creare app in cui il dispositivo è un CBPeripheral.

L'esempio seguente illustra il tipico comportamento di inizializzazione di un'app che utilizza i dati dai dispositivi Bluetooth LE esterni. Le applicazioni che dispongono di un CBCentral oggetto delegato devono avere un oggetto delegato associato CBCentralManagerDelegate e devono eseguire l'override del relativo UpdatedState metodo. L'override deve controllare lo stato dell'oggetto CBCentralManager e verificare che sia PoweredOn.

In genere, le applicazioni vogliono cercare le periferiche Bluetooth LE. Si tratta di una funzione ad alta energia, quindi gli sviluppatori devono chiamare StopScan dopo aver trovato l'oggetto CBPeripheral in cui sono interessati o dopo una certa quantità di tempo.

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

Il DiscoveredPeripheral metodo può essere chiamato più volte per un singolo dispositivo fisico. Quando gli sviluppatori di applicazioni hanno un riferimento all'oggetto CBPeripheral in cui sono interessati, devono mantenere tale riferimento per ulteriori operazioni e chiamare StopScan.

Con un riferimento a un oggetto individuato CBPeripheral, gli sviluppatori possono quindi connettersi a esso, come illustrato nell'esempio seguente.

Un CBPeripheral oggetto ha zero o più CBServices, ognuno dei quali ha zero o più CBCharacteristics. Se la caratteristica rappresenta una misura (ad esempio un heartbeat, un tempo, una temperatura e così via), il valore sarà nella Value proprietà .

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