Compartilhar via


CoreBluetooth Namespace

O namespace CoreBluetooth fornece classes para comunicação Bluetooth.

Classes

AdvertisementData

O namespace CoreBluetooth fornece classes para comunicação Bluetooth.

CBAdvertisement

Chaves usadas para pesquisar valores de dicionário do NSDictionary recebido como um parâmetro em DiscoveredPeripheral(CBCentralManager, CBPeripheral, NSDictionary, NSNumber).

CBATTErrorExtensions

Métodos de extensão para a enumeração CoreBluetooth.CBATTError.

CBATTRequest

Uma solicitação de Protocolo de Atributo para leitura ou gravação.

CBATTRequestEventArgs

Fornece dados para o evento de ReadRequestReceived .

CBATTRequestsEventArgs

Fornece dados para o evento de WriteRequestsReceived .

CBAttribute

Classe que identifica exclusivamente um dispositivo Bluetooth.

CBCentral

Usado para identificar centrais (que não são o dispositivo atual).

CBCentralInitOptions

Contém opções para inicializar um gerenciador central bluetooth.

CBCentralManager

Representa o dispositivo central local no Bluetooth LE.  Use o CBCentralManager para examinar, descobrir e conectar-se a periféricos remotos.

CBCentralManagerDelegate

Delegar objetos para CBCentralManager objetos.

CBCentralManagerDelegate_Extensions

Métodos de extensão para a ICBCentralManagerDelegate interface para dar suporte a todos os métodos do CBCentralManagerDelegate protocolo.

CBCharacteristic

Características de um periférico remoto.

CBCharacteristicEventArgs

Fornece dados para o WroteCharacteristicValue, E:CoreBluetooth.CBCharacteristicEventArgs.UpdatedCharacterteristicValue, E:CoreBluetooth.CBCharacteristicEventArgs.UpdatedNotificationState e E: Eventos CoreBluetooth.CBCharacteristicEventArgs.WroteCharacteristicValue .

CBDescriptor

Uma descrição imutável da característica de um periférico. Consulte também CBMutableDescriptor.

CBDescriptorEventArgs

Fornece dados para os WroteDescriptorValue eventos E:CoreBluetooth.CBDescriptorEventArgs.WroteDescriptorValue .

CBDiscoveredPeripheralEventArgs

Fornece dados para o evento de DiscoveredPeripheral .

CBErrorExtensions

Métodos de extensão para a enumeração CoreBluetooth.CBError.

CBL2CapChannel

O namespace CoreBluetooth fornece classes para comunicação Bluetooth.

CBManager

O namespace CoreBluetooth fornece classes para comunicação Bluetooth.

CBMutableCharacteristic

Um mutável CBCharacteristic.

CBMutableDescriptor

Um T:Corebluetooth.CBDescriptor mutável.

CBMutableService

Um mutável CBService.

CBPeer

Classe que representa um dispositivo Bluetooth central ou periférico.

CBPeripheral

Representa um periférico CoreBluetooth.

CBPeripheralDelegate

Objeto delegate para CBPeripheral. Fornece métodos chamados em eventos relacionados à descoberta, exploração e interação com um periférico remoto.

CBPeripheralDelegate_Extensions

Métodos de extensão para a ICBPeripheralDelegate interface para dar suporte a todos os métodos do CBPeripheralDelegate protocolo.

CBPeripheralErrorEventArgs

Fornece dados para os FailedToConnectPeripheral eventos E:CoreBluetooth.CBPeripheralErrorEventArgs.FailedToConnectPeripheral .

CBPeripheralEventArgs

Fornece dados para o evento de ConnectedPeripheral .

CBPeripheralManager

Gerencia serviços publicados de acordo com o banco de dados GATT do dispositivo T:Coreblutooth.CBPeripheral .

CBPeripheralManagerDelegate

Objeto delegate para CBPeripheralManager. Adiciona métodos para eventos relacionados à disponibilidade, publicação, publicidade e assinatura.

CBPeripheralManagerDelegate_Extensions

Métodos de extensão para a ICBPeripheralManagerDelegate interface para dar suporte a todos os métodos do CBPeripheralManagerDelegate protocolo.

CBPeripheralManagerL2CapChannelOperationEventArgs

Fornece dados para os DidUnpublishL2CapChannel eventos E:CoreBluetooth.CBPeripheralManagerL2CapChannelOperationEventArgs.DidUnpublishL2CapChannel .

CBPeripheralManagerOpenL2CapChannelEventArgs

Fornece dados para o evento de DidOpenL2CapChannel .

CBPeripheralManagerServiceEventArgs

Fornece dados para o evento de ServiceAdded .

CBPeripheralManagerSubscriptionEventArgs

Fornece dados para os CharacteristicUnsubscribed eventos E:CoreBluetooth.CBPeripheralManagerSubscriptionEventArgs.CharacteristicUnsubscribed .

CBPeripheralOpenL2CapChannelEventArgs

Fornece dados para o evento de DidOpenL2CapChannel .

CBPeripheralServicesEventArgs

Fornece dados para o evento de ModifiedServices .

CBPeripheralsEventArgs

Fornece dados para os RetrievedPeripherals eventos E:CoreBluetooth.CBPeripheralsEventArgs.RetrievedPeripherals .

CBRssiEventArgs

Fornece dados para o evento de RssiRead .

CBService

Representa os serviços de um periférico remoto.

CBServiceEventArgs

Fornece dados para os DiscoveredIncludedService eventos E:CoreBluetooth.CBServiceEventArgs.DiscoveredIncludedService .

CBUUID

Identificadores Exclusivos Universais para a pilha Bluetooth.

CBWillRestoreEventArgs

Fornece dados para os WillRestoreState eventos E:CoreBluetooth.CBWillRestoreEventArgs.WillRestoreState .

PeripheralConnectionOptions

Opções de conexão periférica.

PeripheralScanningOptions

Valores possíveis para o parâmetro de opções em chamadas para ScanForPeripherals(CBUUID[], NSDictionary).

RestoredState

O namespace CoreBluetooth fornece classes para comunicação Bluetooth.

StartAdvertisingOptions

Gerencia o acesso às opções usadas pelo método M:CoreBluetooth.StartAdvertising* .

Interfaces

ICBCentralManagerDelegate

Interface que representa os métodos necessários (se houver) do protocolo CBCentralManagerDelegate.

ICBPeripheralDelegate

Interface que representa os métodos necessários (se houver) do protocolo CBPeripheralDelegate.

ICBPeripheralManagerDelegate

Interface que representa os métodos necessários (se houver) do protocolo CBPeripheralManagerDelegate.

Enumerações

CBATTError

Erros retornados por um servidor GATT.

CBAttributePermissions

Enumera as permissões de leitura, gravação e criptografia para os valores de uma característica.

CBCentralManagerState

Enumera os estados possíveis de um CBCentralManager.

CBCharacteristicProperties

As propriedades possíveis de uma característica. Uma característica pode ter várias propriedades.

CBCharacteristicWriteType

Enumera os tipos possíveis de gravações no valor de uma característica.

CBError

Erros possíveis durante transações de BLUETOOTH LE.

CBManagerState

O namespace CoreBluetooth fornece classes para comunicação Bluetooth.

CBPeripheralManagerAuthorizationStatus

Enumera os estados possíveis do CBPeripheralManager.

CBPeripheralManagerConnectionLatency

A latência de conexão do CBPeripheralManager.

CBPeripheralManagerState

Enumera os estados possíveis do CBPeripheralManager.

CBPeripheralState

Enumera os estados de conexão possíveis de um CBPeripheral.

Comentários

O namespace CoreBluetooth permite que os desenvolvedores trabalhem com dispositivos Bluetooth LE (Baixa Energia Bluetooth).

O modelo bluetooth LE gira em torno CBPeer de objetos. Há dois tipos de CBPeer: CBCentral objetos que verificam e consomem dados fornecidos por CBPeripheral objetos que correspondem a dispositivos Bluetooth LE que fornecem dados.

Em geral, o dispositivo iOS estará na CBCentral função, mas também é possível criar aplicativos nos quais o dispositivo é um CBPeripheral.

O exemplo a seguir mostra o comportamento típico de inicialização de um aplicativo que consome dados de dispositivos Bluetooth LE externos. Os aplicativos que têm um CBCentral devem ter um objeto delegado associado CBCentralManagerDelegate e devem substituir seu UpdatedState método. A substituição deve marcar o estado do CBCentralManager e confirmar que ele é PoweredOn.

Normalmente, os aplicativos desejarão verificar periféricos bluetooth LE. Essa é uma função de alta energia, portanto, os desenvolvedores devem chamar M:CoreBluetooth.CBManager.StopScan* depois de encontrar o CBPeripheral no qual estão interessados ou após um determinado período de 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... 
}     

O DiscoveredPeripheral método pode ser chamado várias vezes para um único dispositivo físico. Depois que os CBPeripheral desenvolvedores de aplicativos tiverem uma referência ao no qual estão interessados, eles devem manter essa referência para mais trabalho e chamar StopScan.

Com uma referência a um descoberto CBPeripheral, os desenvolvedores podem se conectar a ele, conforme mostrado no exemplo a seguir.

Um tem zero ou mais CBServices, cada um CBPeripheral deles tem zero ou mais CBCharacteristics. Se a característica representar uma medida (como pulsação, tempo, temperatura etc.), o valor estará na Value propriedade .

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