Compartilhar via


Como especificar recursos de dispositivo para Bluetooth

Observação para Windows 10, consulte O que há de diferente no Windows 10.

 

O manifesto do pacote é um documento XML que contém as informações que o sistema precisa para implantar, exibir ou atualizar um aplicativo de aplicativos do Windows Runtime. Essas informações incluem identidade do pacote, dependências de pacote, recursos necessários, elementos visuais e pontos de extensibilidade. Cada pacote de aplicativo deve incluir um manifesto de pacote.

Para obter informações detalhadas sobre o manifesto do pacote, consulte Como criar um manifesto de pacote manualmente.

Um aplicativo do Windows Runtime que acessa um dispositivo Bluetooth (por meio das APIs rfcomm ou Gatt) deve incluir dados específicos DeviceCapability no Capabilities nó de seu manifesto. Esses dados identificam o dispositivo e sua finalidade (ou função). Observe que alguns dispositivos podem ter várias funções.

O elemento da ID do Dispositivo corresponde ao identificador do dispositivo. Esse elemento pode especificar uma combinação de ID do Fornecedor (vid) e de ID do Produto (pid); ou pode especificar uma combinação de de Fabricante e de Modelo; ou pode especificar uma cadeia de caracteres genérica ("qualquer"). Além disso, se a ID do dispositivo especificar um id do fornecedor (vid) e id do produto (pid), ele poderá conter uma cadeia de caracteres de provedor opcional de "usb" ou "bluetooth".

O elemento tipo de função especifica a função do dispositivo. Esse elemento pode especificar um de Nome do Serviço Bluetooth (nome) ou de ID do Serviço (serviceId).

Uso de DeviceCapability do Bluetooth

Seu aplicativo Bluetooth deve incluir determinadas funcionalidades de dispositivo em seu manifesto do pacote aplicativo para especificar informações importantes sobre o dispositivo. Aqui estão os elementos necessários na ordem hierárquica:

<>DeviceCapability: o atributo Name deve ser "bluetooth.rfcomm" para acessar um dispositivo Bluetooth RFCOMM ou "bluetooth.genericAttributeProfile" para acessar um dispositivo Bluetooth GATT.

<dispositivo>: o atributo ID deve especificar a ID do fornecedor/produto ou o fabricante/modelo ou pode ser "qualquer" para permitir o acesso a qualquer dispositivo que corresponda ao tipo de função.

<Function>: o atributo Type pode especificar o nome do serviço ou a ID do serviço.

Observação Não é possível modificar a funcionalidade do dispositivo Bluetooth no Microsoft Visual Studio. Clique com o botão direito do mouse no arquivo Package.appxmanifest no do Gerenciador de Soluções e selecione Abrir com...e, em seguida, Editor XML (Texto). O arquivo é aberto em XML sem formatação.

 

Definindo DeviceCapabilities rfcomm

Use o layout a seguir para descrever os recursos do RFCOMM Bluetooth do aplicativo:

<m2:DeviceCapability Name="bluetooth.rfcomm">
  <m2:Device Id="vidpid:xxxx xxxx bluetooth">
    <m2:Function Type="serviceId:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"/>
    <m2:Function Type="name:xxxxx"/>
  </m2:Device>
<m2:/DeviceCapability>

Definindo GenericAttributeProfile DeviceCapabilities

Use o layout a seguir para descrever os recursos do GATT Bluetooth do aplicativo:

<m2:DeviceCapability Name="bluetooth.genericAttributeProfile">
  <m2:Device Id="model:xxxx;xxxx">
    <m2:Function Type="serviceId:xxxxxxxx"/>
    <m2:Function Type="name:xxxxx"/>
  <m2:/Device>
<m2:/DeviceCapability>

Como especificar exemplos de DeviceCapabilities

As entradas a seguir ilustram métodos diferentes para definir deviceCapabilities para um dispositivo Bluetooth.

O snippet a seguir identifica o DeviceCapabilities para um dispositivo Bluetooth RFCOMM usando a de ID do fornecedor e combinação de de ID do Produto, juntamente com o provedor opcional:

<m2:DeviceCapability Name="bluetooth.rfcomm">
  <m2:Device Id="vidpid:0006 0001 bluetooth">
    <m2:Function Type="name:obexObjectPush"/>
  </m2:Device>
</m2:DeviceCapability>

Como alternativa, o snippet a seguir identifica o DeviceCapabilities para um dispositivo Bluetooth RFCOMM usando sua ID completa.

<m2:DeviceCapability Name="bluetooth.rfcomm">
  <m2:Device Id="any">
    <m2:Function Type="name:AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE" />
  </m2:Device>
</m2:DeviceCapability>

O snippet a seguir identifica o DeviceCapabilities para um dispositivo GATT Bluetooth usando a combinação do fabricante de e model:

<m2:DeviceCapability Name="bluetooth.genericAttributeProfile">
  <m2:Device Id="any">
    <m2:Function Type="name:heartRate" />
  </m2:Device>
</m2:DeviceCapability>

Suporte para serviços Bluetooth RFCOMM

Os seguintes serviços RFCOMM têm suporte por meio do nome valor:

  • name:serialPort
  • name:obexObjectPush
  • name:obexFileTransfer
  • name:phoneBookAccessPce
  • name:phoneBookAccessPse
  • name:genericFileTransfer

Não há suporte para os seguintes serviços RFCOMM:

  • Descoberta de Serviço (0x1000)
  • Procurar Descritor de Grupo (0x1001)
  • Acesso lan usando PPP (0x1102)
  • Headset (0x1108, 0x1112)
  • Telefonia sem fio (0x1109)
  • Fonte de áudio (0x110A) e coletor (0x110B)
  • Interfone (0x1110)
  • Fax (0x1111)
  • WAP (0x1113, 0x1114)
  • NAP (0x1116)
  • GN (0x1117)
  • Impressão de HCR (0x1126) e Verificação (0x1127)
  • Acesso COMUM ao ISDN (0x1128)
  • Acesso ao SIM (0x112D)
  • Headset – HS (0x1131)
  • Servidor GNSS (0x1136)
  • Informações PnP (0x1200)
  • Rede Genérica (0x1201)
  • Áudio Genérico (0x1203)
  • Telefonia genérica (0x1204)
  • UPnP (0x1205, 0x1206)
  • IP UPnP do ESDP (0x1300, 0x1301, 0x1302)
  • Fonte de vídeo (0x1303) e coletor (0x1304)
  • Origem DO HDP (0x1401) e Coletor (0x1402)

Suporte para serviços BLUETOOTH GATT

Os seguintes serviços GATT têm suporte por meio do nome valor:

  • name:battery
  • name:bloodPressure
  • name:cyclingSpeedAndCadence
  • name:genericAccess
  • name:genericAttribute
  • name:glucose
  • name:healthThermometer
  • name:heartRate
  • name:runningSpeedAndCadence

Não há suporte para o seguinte serviço GATT:

  • Dispositivo de interface humana (0x1812)