如何指定藍牙的裝置功能

注意如 Windows 10,請參閱Windows 10 的不同之處。

 

封裝資訊清單是一份 XML 檔,其中包含系統部署、顯示或更新 Windows 執行階段 apps 應用程式所需的資訊。 此資訊包括套件識別資料、套件相依性、必要功能、視覺元素和擴充點。 每個應用程式套件都必須包含一個套件資訊清單。

如需有關套件資訊清單的詳細資訊,請參閱 如何手動建立套件資訊清單

透過 Rfcomm 或 Gatt api 存取藍牙裝置 (的 Windows 執行階段應用程式,) 必須在其資訊清單的 [功能] 節點中包含特定的DeviceCapability資料。 此資料會識別裝置及其用途 (或函數) 。 請注意,某些裝置可能會有多個功能。

裝置識別碼元素對應于裝置識別碼。 此元素可指定組合 廠商識別碼 (vid) 和 產品識別碼 (pid) ;或者,它可能會指定 製造商型號的組合;或者,它可能會將泛型字串指定 ( "any" ) 。 此外,如果 裝置識別碼 指定 廠商識別碼 (Vid) 和 產品識別碼 (pid) 則它可能包含選擇性的提供者字串 "usb" 或 "藍牙"。

Function Type元素會指定裝置函式。 此元素可指定藍牙服務名稱 (名稱) 或服務識別碼 (serviceId) 。

藍牙 DeviceCapability 使用量

您的藍牙應用程式必須在其應用程式套件資訊清單中包含某些裝置功能,以指定裝置的重要資訊。 以下是階層式順序中的必要元素:

< DeviceCapability >Name屬性必須是 "藍牙. rfcomm",才能存取藍牙 Rfcomm 裝置或 "bluetooth. genericAttributeProfile" 以存取藍牙 GATT 裝置。

< 裝置 >識別碼屬性必須指定廠商/產品識別碼或製造商/型號,或可以是 "any",以允許存取任何符合該函式類型的裝置。

< Function >Type屬性可以指定服務名稱或服務識別碼。

注意您無法在 Microsoft Visual Studio 中修改藍牙的裝置功能。 您必須在方案總管中的 package.appxmanifest 檔案上按一下滑鼠右鍵,然後選取 [開啟方式 ...],再選取 [ XML (文字) 編輯器]。 檔案會以純 XML 開啟。

 

定義 Rfcomm DeviceCapabilities

使用下列配置來描述您的應用程式藍牙 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

使用下列配置來描述您的應用程式藍牙 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的不同方法。

下列程式碼片段會使用廠商識別碼產品識別碼組合來識別藍牙 RFCOMM 裝置的DeviceCapabilities ,以及選擇性的提供者:

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

或者,下列程式碼片段會使用其完整識別碼來識別藍牙 RFCOMM 裝置的DeviceCapabilities

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

下列程式碼片段會使用製造商型號組合來識別藍牙 GATT 裝置的DeviceCapabilities

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

支援藍牙 RFCOMM services

以下是透過 名稱 值支援的 RFCOMM 服務:

  • 名稱: serialPort
  • 名稱: obexObjectPush
  • 名稱: obexFileTransfer
  • 名稱: phoneBookAccessPce
  • 名稱: phoneBookAccessPse
  • 名稱: genericFileTransfer

不支援下列 RFCOMM 服務:

  • 服務探索 (0x1000)
  • 流覽群組描述項 (0x1001)
  • 使用 PPP (0x1102) 的 LAN 存取
  • 撥號網路 (0x1103)
  • 耳機 (0x1108、0x1112)
  • 無繩電話語音 (0x1109)
  • 音訊來源 (0x110A) 和接收器 (0x110B)
  • A/V 遠端控制 (0x110C、0x110E、0x110F)
  • 對講機 (0x1110)
  • 傳真 (0x1111)
  • WAP (0x1113、0x1114)
  • PANU (0x1115)
  • NAP (0x1116)
  • GN (0x1117)
  • Handsfree (0x111E、0x111F)
  • 人體介面裝置 (0x1124)
  • HCR Print (0x1126) and Scan (0x1127)
  • 常見的 ISDN 存取 (0x1128)
  • SIM 存取 (0x112D)
  • 耳機-HS (0x1131)
  • GNSS Server (0x1136)
  • PnP 資訊 (0x1200)
  • 一般網路 (0x1201)
  • 一般音訊 (0x1203)
  • 一般電話語音 (0x1204)
  • UPnP (0x1205、0x1206)
  • ESDP UPnP IP (0x1300、0x1301、0x1302)
  • 影片來源 (0x1303) 和接收器 (0x1304)
  • (0x1305) 的影片發佈
  • HDP 來源 (0x1401) 和接收 (0x1402)

支援藍牙 GATT services

以下是透過 名稱 值支援的 GATT 服務:

  • 名稱:電池
  • 名稱: bloodPressure
  • 名稱: cyclingSpeedAndCadence
  • 名稱: genericAccess
  • 名稱: genericAttribute
  • name:血糖
  • 名稱: healthThermometer
  • 名稱: Josh
  • 名稱: runningSpeedAndCadence

不支援下列 GATT 服務:

  • 人體介面裝置 (0x1812)