共用方式為


如何指定藍牙的裝置功能

Windows 10 的注意事項,請參閱 Windows 10 有何不同。

 

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

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

存取藍牙裝置的 Windows 執行時間應用程式(透過 Rfcomm 或 Gatt API)必須在其指令清單 功能 節點中包含特定 DeviceCapability 數據。 此數據會識別裝置及其用途(或功能)。 請注意,某些裝置可能會有多個功能。

裝置標識碼 項目會對應至裝置標識碼。 這個專案可以指定 廠商標識子 (vid) 和 產品識別碼 的組合(pid):或者,它可以指定 製造商型號的組合;或者,它可以指定泛型字串(“any”)。 此外,如果 裝置標識碼 指定 廠商標識子(vid)和 產品標識碼 (pid),則它可能包含選擇性的提供者字元串 “usb” 或 “bluetooth”。

函式類型 專案會指定裝置函式。 這個專案可以指定藍牙 服務名稱(name)或 服務標識子(serviceId)。

藍牙 DeviceCapability 使用量

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

<DeviceCapability>Name 屬性必須是 “bluetooth.rfcomm”,才能存取藍牙 RFCOMM 裝置或 “bluetooth.genericAttributeProfile” 來存取藍牙 GATT 裝置。

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

<函式>Type 屬性可以指定服務名稱或服務標識符。

注意 您無法修改 Visual Studio Microsoft 中的藍牙裝置功能。 您必須以滑鼠右鍵按兩下 [方案總管] 中的 Package.appxmanifest 檔案,然後選取 [開啟 With...],然後XML (Text) 編輯器。 檔案會以純 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>

下列代碼段會使用 ManufacturerModel 組合來識別藍牙 GATT 裝置的 DeviceCapabilities

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

支援藍牙 RFCOMM 服務

透過 名稱 值支援下列 RFCOMM 服務:

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

不支援下列 RFCOMM 服務:

  • 服務探索 (0x1000)
  • 瀏覽群組描述元 (0x1001)
  • 使用 PPP 的 LAN 存取 (0x1102)
  • 頭戴式裝置(0x1108,0x1112)
  • 無繩電話語音 (0x1109)
  • 音訊來源(0x110A)和接收器(0x110B)
  • Intercom (0x1110)
  • 傳真(0x1111)
  • WAP(0x1113,0x1114)
  • NAP (0x1116)
  • GN (0x1117)
  • HCR 列印 (0x1126) 和掃描 (0x1127)
  • 常見的 ISDN 存取 (0x1128)
  • SIM 存取權 (0x112D)
  • 頭戴式裝置 – HS(0x1131)
  • GNSS 伺服器 (0x1136)
  • PnP 資訊 (0x1200)
  • 一般網路功能 (0x1201)
  • 一般音訊 (0x1203)
  • 一般電話語音 (0x1204)
  • UPnP (0x1205,0x1206)
  • ESDP UPnP IP (0x1300, 0x1301, 0x1302)
  • 視訊來源 (0x1303) 和接收器 (0x1304)
  • HDP 來源 (0x1401) 和接收 (0x1402)

支援藍牙 GATT 服務

透過 名稱 值支援下列 GATT 服務:

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

不支援下列 GATT 服務:

  • 人類介面裝置(0x1812)