Come specificare le funzionalità del dispositivo per Bluetooth

Nota per Windows 10, vedi Differenze in Windows 10.

 

Il manifesto del pacchetto è un documento XML che contiene le informazioni necessarie al sistema per distribuire, visualizzare o aggiornare un'app di Windows Runtime. Queste informazioni includono l'identità del pacchetto, le dipendenze dei pacchetti, 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 di Windows Runtime che accede a un dispositivo Bluetooth (tramite le API Rfcomm o Gatt) deve includere dati specifici DeviceCapability 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 id fornitore (vid) e id prodotto (pid); oppure può specificare una combinazione di Manufacturer e Model; oppure può specificare una stringa generica ("any"). Inoltre, se l'ID dispositivo specifica un id fornitore (vid) e ID prodotto (pid) può contenere una stringa provider facoltativa di "usb" o "bluetooth".

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

Utilizzo di DeviceCapability Bluetooth

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

DeviceCapability: l'attributo nome deve essere "bluetooth.rfcomm" per accedere a un dispositivo RFCOMM Bluetooth o "bluetooth.genericAttributeProfile" per accedere a un dispositivo GATT Bluetooth.

Device: l'attributo ID deve specificare l'ID fornitore/prodotto o il produttore/modello oppure può essere "qualsiasi" per consentire l'accesso a qualsiasi dispositivo che corrisponda al tipo di funzione.

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

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

 

Definizione di Rfcomm DeviceCapabilities

Usare il layout seguente per descrivere le funzionalità RFCOMM Bluetooth dell'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

Usa il layout seguente per descrivere le funzionalità GATT Bluetooth della tua 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 metodi diversi per definire DeviceCapabilities per un dispositivo Bluetooth.

Il frammento di codice seguente identifica il DeviceCapabilities per un dispositivo RFCOMM Bluetooth usando l'ID fornitore e combinazione di 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 un dispositivo Bluetooth RFCOMM usando l'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 dispositivo GATT Bluetooth usando la combinazione Produttore e Modello:

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

Supporto per i servizi RFCOMM Bluetooth

I servizi RFCOMM seguenti sono supportati tramite il valore nome :

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

I servizi RFCOMM seguenti non sono supportati:

  • Individuazione dei servizi (0x1000)
  • Esplora descrittore di gruppo (0x1001)
  • Accesso LAN tramite PPP (0x1102)
  • Visore VR (0x1108, 0x1112)
  • Telefonia senza fili (0x1109)
  • Origine audio (0x110A) e sink (0x110B)
  • Intercom (0x1110)
  • Fax (0x1111)
  • WAP (0x1113, 0x1114)
  • Protezione accesso alla rete (0x1116)
  • GN (0x1117)
  • Stampa HCR (0x1126) e analisi (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)
  • Origine HDP (0x1401) e sink (0x1402)

Supporto per i servizi GATT Bluetooth

I seguenti servizi GATT sono supportati tramite il nome valore:

  • name:battery
  • name:bloodPressure
  • name:cyclingSpeedAndCadence
  • name:genericAccess
  • name:genericAttribute
  • name:glucosio
  • name:healthTermometer
  • name:heartRate
  • name:runningSpeedAndCadence

Il servizio GATT seguente non è supportato:

  • Dispositivo interfaccia umana (0x1812)