CoreBluetooth Espacio de nombres

El espacio de nombres CoreBluetooth proporciona clases para la comunicación Bluetooth.

Clases

AdvertisementData

El espacio de nombres CoreBluetooth proporciona clases para la comunicación Bluetooth.

CBAdvertisement

Claves usadas para buscar valores de diccionario de NSDictionary recibidos como parámetro en DiscoveredPeripheral(CBCentralManager, CBPeripheral, NSDictionary, NSNumber).

CBATTErrorExtensions

Métodos de extensión para la enumeración CoreBluetooth.CBATTError.

CBATTRequest

Solicitud de protocolo de atributo para leer o escribir.

CBATTRequestEventArgs

Proporciona datos para el evento ReadRequestReceived.

CBATTRequestsEventArgs

Proporciona datos para el evento WriteRequestsReceived.

CBAttribute

Clase que identifica de forma única un dispositivo Bluetooth.

CBCentral

Se usa para identificar los centrales (que no son el dispositivo actual).

CBCentralInitOptions

Contiene opciones para inicializar un administrador central de Bluetooth.

CBCentralManager

Representa el dispositivo central local en Bluetooth LE.  Use CBCentralManager para examinar, detectar y conectarse a periféricos remotos.

CBCentralManagerDelegate

Delegar objetos para CBCentralManager objetos.

CBCentralManagerDelegate_Extensions

Métodos de extensión a la ICBCentralManagerDelegate interfaz para admitir todos los métodos del CBCentralManagerDelegate protocolo.

CBCharacteristic

Características de un periférico remoto.

CBCharacteristicEventArgs

Proporciona datos para , WroteCharacteristicValueE:CoreBluetooth.CBCharacteristicEventArgs.UpdatedCharacterteristicValue, CoreBluetooth.CBCharacteristicEventArgs.UpdatedNotificationState y E: Eventos CoreBluetooth.CBCharacteristicEventArgs.WroteCharacteristicValue.

CBDescriptor

Descripción inmutable de la característica de un periférico. Consulte también CBMutableDescriptor.

CBDescriptorEventArgs

Proporciona datos para los WroteDescriptorValue eventos e E:CoreBluetooth.CBDescriptorEventArgs.WroteDescriptorValue .

CBDiscoveredPeripheralEventArgs

Proporciona datos para el evento DiscoveredPeripheral.

CBErrorExtensions

Métodos de extensión para la enumeración CoreBluetooth.CBError.

CBL2CapChannel

El espacio de nombres CoreBluetooth proporciona clases para la comunicación Bluetooth.

CBManager

El espacio de nombres CoreBluetooth proporciona clases para la comunicación Bluetooth.

CBMutableCharacteristic

Un objeto mutable CBCharacteristic.

CBMutableDescriptor

T T:Corebluetooth.CBDescriptor.

CBMutableService

Un objeto mutable CBService.

CBPeer

Clase que representa un dispositivo Bluetooth central o perhiferal.

CBPeripheral

Representa un periférico CoreBluetooth.

CBPeripheralDelegate

Delegado del objeto para CBPeripheral. Proporciona métodos llamados en eventos relacionados con la detección, la exploración y la interacción con un periférico remoto.

CBPeripheralDelegate_Extensions

Métodos de extensión a la ICBPeripheralDelegate interfaz para admitir todos los métodos del CBPeripheralDelegate protocolo.

CBPeripheralErrorEventArgs

Proporciona datos para los FailedToConnectPeripheral eventos E E:CoreBluetooth.CBPeripheralErrorEventArgs.FailedToConnectPeripheral .

CBPeripheralEventArgs

Proporciona datos para el evento ConnectedPeripheral.

CBPeripheralManager

Administra los servicios publicados según la base de datos GATT del dispositivo T:Coreblutooth.CBPeripheral .

CBPeripheralManagerDelegate

Delegado del objeto para CBPeripheralManager. Agrega métodos para eventos relacionados con la disponibilidad, publicación, publicidad y suscripción.

CBPeripheralManagerDelegate_Extensions

Métodos de extensión a la ICBPeripheralManagerDelegate interfaz para admitir todos los métodos del CBPeripheralManagerDelegate protocolo.

CBPeripheralManagerL2CapChannelOperationEventArgs

Proporciona datos para los DidUnpublishL2CapChannel eventos e E:CoreBluetooth.CBPeripheralManagerL2CapChannelOperationEventArgs.DidUnpublishL2CapChannel .

CBPeripheralManagerOpenL2CapChannelEventArgs

Proporciona datos para el evento DidOpenL2CapChannel.

CBPeripheralManagerServiceEventArgs

Proporciona datos para el evento ServiceAdded.

CBPeripheralManagerSubscriptionEventArgs

Proporciona datos para los CharacteristicUnsubscribed eventos E E:CoreBluetooth.CBPeripheralManagerSubscriptionEventArgs.CharacteristicUnsubscriptscribed .

CBPeripheralOpenL2CapChannelEventArgs

Proporciona datos para el evento DidOpenL2CapChannel.

CBPeripheralServicesEventArgs

Proporciona datos para el evento ModifiedServices.

CBPeripheralsEventArgs

Proporciona datos para los RetrievedPeripherals eventos E E:CoreBluetooth.CBPeripheralsEventArgs.RetrievedPeripherals .

CBRssiEventArgs

Proporciona datos para el evento RssiRead.

CBService

Representa los servicios de un periférico remoto.

CBServiceEventArgs

Proporciona datos para los DiscoveredIncludedService eventos E:CoreBluetooth.CBServiceEventArgs.DiscoveredIncludedService .

CBUUID

Identificadores únicos universales para la pila bluetooth.

CBWillRestoreEventArgs

Proporciona datos para los WillRestoreState eventos E E:CoreBluetooth.CBWillRestoreEventArgs.WillRestoreState .

PeripheralConnectionOptions

Opciones de conexión de periféricos.

PeripheralScanningOptions

Valores posibles para el parámetro options en las llamadas a ScanForPeripherals(CBUUID[], NSDictionary).

RestoredState

El espacio de nombres CoreBluetooth proporciona clases para la comunicación Bluetooth.

StartAdvertisingOptions

Administra el acceso a las opciones usadas por M:CoreBluetooth.StartAdvertising* .

Interfaces

ICBCentralManagerDelegate

Interfaz que representa los métodos necesarios (si los hay) del protocolo CBCentralManagerDelegate.

ICBPeripheralDelegate

Interfaz que representa los métodos necesarios (si los hay) del protocolo CBPeripheralDelegate.

ICBPeripheralManagerDelegate

Interfaz que representa los métodos necesarios (si los hay) del protocolo CBPeripheralManagerDelegate.

Enumeraciones

CBATTError

Errores devueltos por un servidor GATT.

CBAttributePermissions

Enumera los permisos de lectura, escritura y cifrado para los valores de una característica.

CBCentralManagerState

Enumera los posibles estados de un CBCentralManagerobjeto .

CBCharacteristicProperties

Las posibles propiedades de una característica. Una característica puede tener varias propiedades.

CBCharacteristicWriteType

Enumera los posibles tipos de escrituras en el valor de una característica.

CBError

Errores posibles durante las transacciones bluetooth LE.

CBManagerState

El espacio de nombres CoreBluetooth proporciona clases para la comunicación Bluetooth.

CBPeripheralManagerAuthorizationStatus

Enumera los posibles estados de .CBPeripheralManager

CBPeripheralManagerConnectionLatency

Latencia de conexión de CBPeripheralManager.

CBPeripheralManagerState

Enumera los posibles estados de .CBPeripheralManager

CBPeripheralState

Enumera los posibles estados de conexión de .CBPeripheral

Comentarios

El espacio de nombres CoreBluetooth permite a los desarrolladores trabajar con dispositivos Bluetooth Low Energy (Bluetooth LE).

El modelo Bluetooth LE gira en torno a CBPeer objetos. Hay dos tipos de CBPeer: CBCentral objetos que examinan y consumen datos proporcionados por CBPeripheral objetos que corresponden a dispositivos Bluetooth LE que proporcionan datos.

Por lo general, el dispositivo iOS estará en el CBCentral rol, pero también es posible crear aplicaciones en las que el dispositivo sea .CBPeripheral

En el ejemplo siguiente se muestra el comportamiento de inicialización típico de una aplicación que consume datos de dispositivos Bluetooth LE externos. Las aplicaciones que tienen un CBCentral elemento deben tener un objeto delegado asociado CBCentralManagerDelegate y deben invalidar su UpdatedState método. La invalidación debe comprobar el estado de CBCentralManager y confirmar que es PoweredOn.

Normalmente, las aplicaciones querrán buscar periféricos Bluetooth LE. Se trata de una función de alta energía, por lo que los desarrolladores deben llamar a M:CoreBluetooth.CBManager.StopScan* después de encontrar el en el CBPeripheral que están interesados o después de una cierta cantidad de tiempo.

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

Se DiscoveredPeripheral puede llamar al método varias veces para un único dispositivo físico. Una vez que los desarrolladores de aplicaciones tienen una referencia a en la CBPeripheral que están interesados, deben mantener esa referencia para seguir trabajando y llamar a StopScan.

Con una referencia a un detectado CBPeripheral, los desarrolladores pueden conectarse a él, como se muestra en el ejemplo siguiente.

tiene CBPeripheral cero o más CBServices, cada uno de los cuales tiene cero o más CBCharacteristics. Si la característica representa una medida (por ejemplo, latido, tiempo, temperatura, etc.), el valor estará en la Value propiedad .

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