Come specificare le funzionalità dei dispositivi per Bluetooth

Nota Per Windows 10, vedere Novità di Windows 10.

 

Il manifesto del pacchetto è un documento XML che contiene le informazioni necessarie al sistema per distribuire, visualizzare o aggiornare un'app Windows Runtime app. Queste informazioni includono l'identità del pacchetto, le dipendenze del pacchetto, le funzionalità necessarie, gli elementi visivi e i punti di estendibilità. Ogni pacchetto dell'app deve includere un manifesto del pacchetto.

Per informazioni dettagliate sul manifesto del pacchetto, vedere Come creare manualmente un manifesto del pacchetto.

Un'app Windows Runtime che accede a un dispositivo Bluetooth (tramite le API Rfcomm o Gatt) deve includere dati DeviceCapability specifici nel nodo Capabilities del relativo manifesto. Questi dati identificano il dispositivo e il relativo scopo (o funzione). Si noti che alcuni dispositivi possono avere più funzioni.

L'elemento Id dispositivo corrisponde all'identificatore del dispositivo. Questo elemento può specificare una combinazione di ID fornitore (vid) e ID prodotto (pid); oppure può specificare una combinazione di Produttore e Modello. oppure può specificare una stringa generica ("any"). Inoltre, se l'ID dispositivo specifica un ID fornitore (vid) e un ID prodotto (pid), può contenere una stringa di provider facoltativa "usb" o "bluetooth".

L'elemento Tipo di funzione specifica la funzione del dispositivo. Questo elemento può specificare un Bluetooth (nome) o un ID servizio (serviceId).

Bluetooth utilizzo di DeviceCapability

L Bluetooth app deve includere determinate funzionalità del dispositivo nel manifesto del pacchetto dell'app per specificare le informazioni chiave sul dispositivo. Ecco gli elementi necessari in ordine gerarchico:

<DeviceCapability>: l'attributo Name deve essere "bluetooth.rfcomm" per l'accesso a un dispositivo BLUETOOTH RFCOMM o "bluetooth.genericAttributeProfile" per l'accesso a un Bluetooth GATT.

<Dispositivo>: l'attributo Id deve specificare l'ID del fornitore/prodotto o il produttore/modello oppure può essere "qualsiasi" per consentire l'accesso a qualsiasi dispositivo che corrisponde al tipo di funzione.

<Funzione>: l'attributo Type può specificare il nome del servizio o l'ID del servizio.

Nota Non è possibile modificare Bluetooth funzionalità del dispositivo in Microsoft Visual Studio. È necessario fare clic con il pulsante destro del mouse sul file Package.appxmanifest in Esplora soluzioniselezionare Apri con e quindi Editor XML (testo). Il file viene aperto in xml normale.

 

Definizione di Rfcomm DeviceCapabilities

Usare il layout seguente per descrivere le funzionalità RFCOMM Bluetooth'app:

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

Definizione di GenericAttributeProfile DeviceCapabilities

Usare il layout seguente per descrivere le funzionalità GATT Bluetooth'app:

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

Come specificare esempi di devicecapabilities

Le voci seguenti illustrano diversi metodi per la definizione di DeviceCapabilities per un Bluetooth dispositivo.

Il frammento di codice seguente identifica il DeviceCapabilities per un Bluetooth RFCOMM usando la combinazione di ID fornitore e ID prodotto, insieme al provider facoltativo:

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

In alternativa, il frammento di codice seguente identifica il DeviceCapabilities per Bluetooth dispositivo RFCOMM usando il relativo ID completo.

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

Il frammento di codice seguente identifica il DeviceCapabilities per un Bluetooth GATT usando la combinazione Produttoree Modello:

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

Supporto per i Bluetooth RFCOMM

I servizi RFCOMM seguenti sono supportati tramite il valore del nome:

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

I servizi RFCOMM seguenti non sono supportati:

  • Individuazione servizio (0x1000)
  • Esplora descrittore gruppo (0x1001)
  • Accesso LAN tramite PPP (0x1102)
  • Dialup Networking (0x1103)
  • Visore VR (0x1108, 0x1112)
  • Telefonia cordless (0x1109)
  • Origine audio (0x110A) e sink (0x110B)
  • Controllo remoto A/V (0x110C, 0x110E, 0x110F)
  • Intercom (0x1110)
  • Fax (0x1111)
  • WAP (0x1113, 0x1114)
  • PANU (0x1115)
  • Protezione accesso alla rete (0x1116)
  • GN (0x1117)
  • Handsfree (0x111E, 0x111F)
  • Human Interface Device (0x1124)
  • Stampa e analisi di HCR (0x1126) (0x1127)
  • Accesso ISDN comune (0x1128)
  • Accesso SIM (0x112D)
  • Visore VR - HS (0x1131)
  • Server GNSS (0x1136)
  • Informazioni PnP (0x1200)
  • Rete generica (0x1201)
  • Audio generico (0x1203)
  • Telefonia generica (0x1204)
  • UPnP (0x1205, 0x1206)
  • IP UPnP ESDP (0x1300, 0x1301, 0x1302)
  • Origine video (0x1303) e sink (0x1304)
  • Distribuzione video (0x1305)
  • Origine HDP (0x1401) e sink (0x1402)

Supporto per i Bluetooth GATT

I servizi GATT seguenti sono supportati tramite il valore del nome:

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

Il servizio GATT seguente non è supportato:

  • Human Interface Device (0x1812)