Поделиться через


Как указать возможности устройства для Bluetooth

примечание для Windows 10 см. что отличается в Windows 10.

 

Манифест пакета — это XML-документ, содержащий сведения, необходимые системе для развертывания, отображения или обновления приложения среды выполнения Windows. Эти сведения включают удостоверение пакета, зависимости пакета, необходимые возможности, визуальные элементы и точки расширяемости. Каждый пакет приложения должен содержать один манифест пакета.

Подробные сведения о манифесте пакета см. в разделе Создание манифеста пакета вручную.

Приложение среды выполнения Windows, которое обращается к устройству Bluetooth (через API Rfcomm или Gatt), должно содержать определенные данные DeviceCapability в узле возможностей манифеста. Эти данные определяют устройство и его назначение (или функцию). Обратите внимание, что некоторые устройства могут иметь несколько функций.

Элемент идентификатора устройства соответствует идентификатору устройства. Этот элемент может указывать сочетание идентификатор поставщика (vid) и идентификатор продукта (pid); или можно указать сочетание производителя и модели ; или может указать универсальную строку ("любой"). Кроме того, если идентификатор устройства указывает идентификатор поставщика (vid) и идентификатор продукта (pid), то он может содержать необязательную строку поставщика usb или Bluetooth.

Элемент типа функции указывает функцию устройства. Этот элемент может указать (имя) или идентификатор службы Bluetooth (имя) или идентификатор службы (serviceId).

Использование Bluetooth DeviceCapability

Приложение Bluetooth должно включать определенные возможности устройства в манифест пакета приложения , чтобы указать ключевые сведения об устройстве. Ниже приведены обязательные элементы в иерархическом порядке:

DeviceCapability: атрибут имени должен быть "bluetooth.rfcomm" для доступа к устройству Bluetooth RFCOMM или bluetooth.genericAttributeProfile для доступа к устройству Bluetooth GATT.

<устройства>: атрибут id должен указывать идентификатор поставщика или продукта или модель или быть "любым", чтобы разрешить доступ к любому устройству, соответствующему типу функции.

Функция: атрибут типа может указать имя службы или идентификатор службы.

примечание Невозможно изменить возможности устройства Bluetooth в Microsoft Visual Studio. Щелкните правой кнопкой мыши файл Package.appxmanifest в обозревателя решений и выберите Открыть с помощью, а затем редактор XML (текст). Файл открывается в формате обычного XML.

 

Определение rfcomm DeviceCapabilities

Используйте следующий макет, чтобы описать возможности Bluetooth RFCOMM приложения:

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

Определение genericAttributeProfile DeviceCapabilities

Используйте следующий макет, чтобы описать возможности Bluetooth GATT приложения:

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

Указание примеров deviceCapabilities

В следующих записях показано, как определить DeviceCapabilities для устройства Bluetooth.

Следующий фрагмент кода определяет DeviceCapabilities для устройства Bluetooth RFCOMM с помощью идентификатора поставщика и сочетания идентификатор продукта вместе с необязательным поставщиком:

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

Кроме того, следующий фрагмент кода определяет DeviceCapabilities для устройства Bluetooth RFCOMM с использованием полного идентификатора.

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

Следующий фрагмент кода определяет deviceCapabilities для устройства Bluetooth GATT с помощью сочетания производителя и модели:

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

Поддержка служб Bluetooth RFCOMM

Следующие службы RFCOMM поддерживаются с помощью значения имени :

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

Следующие службы RFCOMM не поддерживаются:

  • Обнаружение служб (0x1000)
  • Обзор дескриптора группы (0x1001)
  • Доступ к локальной сети с помощью PPP (0x1102)
  • Гарнитура (0x1108, 0x1112)
  • Шнуровая телефония (0x1109)
  • Источник звука (0x110A) и приемник (0x110B)
  • Интерком (0x1110)
  • Факс (0x1111)
  • WAP (0x1113, 0x1114)
  • NAP (0x1116)
  • GN (0x1117)
  • Печать HCR (0x1126) и сканирование (0x1127)
  • Common ISDN Access (0x1128)
  • Доступ к SIM-картам (0x112D)
  • Гарнитура — HS (0x1131)
  • Сервер GNSS (0x1136)
  • Сведения о PnP (0x1200)
  • Универсальные сети (0x1201)
  • Универсальный звук (0x1203)
  • Универсальная телефония (0x1204)
  • UPnP (0x1205, 0x1206)
  • IP-адрес UPnP ESDP (0x1300, 0x1301, 0x1302)
  • Источник видео (0x1303) и приемник (0x1304)
  • Источник HDP (0x1401) и приемник (0x1402)

Поддержка служб Bluetooth GATT

Следующие службы GATT поддерживаются с помощью имени:

  • name:battery
  • name:bloodPressure
  • name:cyclingSpeedAndCadence
  • name:genericAccess
  • name:genericAttribute
  • name:глюкоза
  • name:healthThermometer
  • name:heartRate
  • name:runningSpeedAndCadence

Следующая служба GATT не поддерживается:

  • Устройство пользовательского интерфейса (0x1812)