應用程式功能宣告
注意
針對發行前產品的部分相關資訊,在產品正式發行時可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
應用程式功能適用於哪些種類的應用程式?
應用程式功能的大多數案例只與具有套件身分識別的應用程式相關,以及在 AppContainer 中執行的應用程式相關。 所有 UWP 應用程式都符合這些準則;因此功能會套用至它們。 但您也可以提供電腦應用程式套件識別資料,並將其設定為 AppContainer 應用程式。 因此功能也適用於某些電腦應用程式。
- 如需封裝和套件身分識別的詳細資訊,請參閱部署概觀。
- 如需 AppContainer 應用程式的詳細資訊,請參閱舊版應用程式的 AppContainer。
應用程式套件資訊清單中的uap10:TrustLevel="appContainer"
可以識別 AppContainer 應用程式的電腦應用程式 (如需詳細資訊,請參閱應用程式 (Windows 10))。 同樣地,具有 mediumIL (中完整性層級) 的電腦應用程式擁有uap10:TrustLevel="mediumIL"
。 中完整性層級應用程式 (也稱為完全信任的應用程式) 請勿在 AppContainer 中執行。
internetClient 與 enterpriseAuthentication 功能賦予應用程式執行使用者已經可以執行的某些作業的能力。 因此,這些是僅適用於 AppContainer 應用程式的功能範例。 相反地,中完整性層級應用程式已經以使用者身分執行;因此,這類應用程式已經可以執行這些作業,而不需要這些功能。
但在某些情況下,中完整性層級應用程式也應該宣告功能。 事實上,中完整性層級應用程式需要來宣告 runFullTrust 受限制的功能。 而且,為了能夠註冊進程外 COM 伺服器以進行進程間通訊 (IPC),封裝的應用程式需要 runFullTrust。 此功能稱為 Packaged COM (如需詳細資訊,請參閱部落格文章 COM 伺服器及傳統型橋接器的 OLE 文件支援)。
如需適用於中完整性層級應用程式的其他案例資訊,請參閱本主題中隱私敏感功能。
您可以藉由建置套件,判斷應用程式套件資訊清單是否需要 runFullTrust。 Makeappx.exe
會驗證架構,如果 runFullTrust 未宣告,但需要它,則您會看到詳細的錯誤訊息,包括問題是什麼,以及行號和資料行編號。
宣告功能
如果您想要存取特定 API 或資源 (例如圖片或音樂),或裝置 (例如相機或麥克風),則必須在 Windows 應用程式的套件資訊清單中宣告適當的應用程式功能
您可以使用 Visual Studio 中的資訊清單設計工具來宣告一般的功能,也可以手動新增。 如需詳細資訊,請參閱如何在套件資訊清單中指定功能。 請務必知道,當客戶從 Microsoft Store 取得您的應用程式時,他們會收到應用程式宣告的所有功能通知。 因此,請務必只宣告應用程式所需的功能。
隱私權敏感功能
敏感資源是可存取使用者個人資料或成本使用者資金的資源。 在本主題中,為應用程式提供對敏感資源的存取功能在功能案例資料行中以星號 (*) 標註。
隱私權敏感功能會向作業系統 (OS) 發出訊號,並向使用者發出應用程式想要執行的動作。 由於最好將此訊號傳送給應用程式的使用者,因此建議您宣告隱私權敏感功能,即使是中完整性層級應用程式 (其中應用程式身分識別是用來提供個別隱私權切換的)。 這樣做可讓這些應用程式在安裝後立即在隱私權設定頁面 (由 Windows 設定應用程式管理) 中進行管理;而不是稍後存取隱私權敏感資源時。。
這些隱私權設定可讓使用者動態控制敏感資源的存取權。 因此,您的應用程式不會假設敏感資源可隨時使用,這點很重要。 如需存取敏感資源的詳細資訊,請參閱安全性。
不同類型的功能
有數種類型的功能。
- 一般用途功能,適用於大部分常見應用程式案例。
- 裝置功能,可以讓您的應用程式存取內部和周邊裝置。
- 受限功能,需要取得 Microsoft Store 提交核准,且/或通常只有 Microsoft 和特定合作夥伴可以使用。
- 自訂功能。
一般用途功能
一般用途功能是使用應用程式封裝資訊清單中的 Capability 元素來指定。 這些功能適用於大部分常見的應用程式案例。
注意
在封裝資訊清單中的 Capabilities 節點底下,所有的 Capability 元素都必須放在任何 CustomCapability 和 DeviceCapability 元素之前。
功能案例 | 功能使用方式 |
---|---|
音樂* | musicLibrary 功能提供對使用者 [音樂] 媒體櫃的程式化存取,可讓應用程式列舉及存取媒體櫃中的所有檔案,而不需使用者互動。 這個功能通常用於點唱機應用程式,這類應用程式需要存取整個「音樂」媒體櫃。 檔案選擇器提供強固的 UI 機制,讓使用者可開啟要供應用程式使用的檔案。 只有當您應用程式的案例需要以程式設計方式進行存取,而您無法使用檔案選擇器來實現時,才需宣告 musicLibrary 功能。 在您的應用程式套件資訊清單中宣告 musicLibrary 功能時,它必須包含 uap 命名空間,如下所示。 <Capabilities><uap:Capability Name="musicLibrary"/></Capabilities> |
圖片* | picturesLibrary 功能提供對使用者 [圖片] 庫的程式化存取,可讓應用程式列舉及存取媒體櫃中的所有檔案,而不需使用者互動。 這個功能通常用於相片應用程式,這類應用程式需要存取整個「圖片」媒體櫃。 檔案選擇器提供強固的 UI 機制,讓使用者可開啟要供應用程式使用的檔案。 只有當您應用程式的案例需要以程式設計方式進行存取,而您無法使用檔案選擇器來實現時,才需宣告 picturesLibrary 功能。 在您的應用程式套件資訊清單中宣告 picturesLibrary 功能時,它必須包含 uap 命名空間,如下所示。 <Capabilities><uap:Capability Name="picturesLibrary"/></Capabilities> |
影片* | videosLibrary 功能提供以程式設計方式存取使用者的「影片」,允許應用程式在沒有使用者互動的情況下,列舉和存取媒體櫃中的所有檔案。 這個功能通常用於電影播放應用程式,這類應用程式需要存取整個「影片」媒體櫃。 檔案選擇器提供強固的 UI 機制,讓使用者可開啟要供應用程式使用的檔案。 只有當您應用程式的案例需要以程式設計方式進行存取,而您無法使用檔案選擇器來實現時,才需宣告 videosLibrary 功能。 在您的應用程式套件資訊清單中宣告 videosLibrary 功能時,它必須包含 uap 命名空間,如下所示。 <Capabilities><uap:Capability Name="videosLibrary"/></Capabilities> |
卸除式存放裝置 | removableStorage 功能提供以程式設計方式存取卸除式存放裝置 (例如 USB 快閃磁碟機和外接式硬碟) 中的檔案 (已篩選出套件資訊清單中宣告的檔案類型關聯) 的功能。 例如,如果文件閱讀程式應用程式宣告 .doc 檔案類型關聯,則可以開啟卸除式存放裝置上的 .doc 檔案,但不能開啟其他類型的檔案。 宣告這個功能時請小心,因為使用者可能會在他們的卸除式存放裝置上包含各種不同資訊,而且會預期您的應用程式會針對以程式設計方式存取卸除式存放裝置上所有宣告的檔案類型提供有效的調整。 使用者會預期您的應用程式會處理宣告的所有檔案關聯。 因此,請勿宣告您的應用程式無法負責處理的檔案關聯。 檔案選擇器提供強固的 UI 機制,讓使用者可開啟要供應用程式使用的檔案。 只有當您應用程式的案例需要以程式設計方式進行存取,而您無法使用檔案選擇器來實現時,才需宣告 removableStorage 功能。 在您的應用程式套件資訊清單中宣告 removableStorage 功能時,它必須包含 uap 命名空間,如下所示。 <Capabilities><uap:Capability Name="removableStorage"/></Capabilities> |
網際網路和公用網路* | 有兩個功能可以提供不同層級的網際網路和公用網路存取權。 internetClient 功能指出應用程式可接收從網際網路傳入的資料。 無法做為伺服器。 不具區域網路存取權。 internetClientServer 功能指出應用程式可接收從網際網路傳入的資料。 可以做為伺服器。 不具區域網路存取權。 大部分含有 Web 服務元件的應用程式都將使用 internetClient。 啟用點對點 (P2P) 案例的應用程式 (此應用程式需要接聽連入的網路連線) 應該使用 internetClientServer。 internetClientServer 功能包含 internetClient 功能提供的存取權,因此指定 internetClientServer 就不需要指定 internetClient。 |
家用與工作場所網路* | privateNetworkClientServer 功能可以透過防火牆,提供家用與工作場所網路的輸入和輸出存取。 這個功能通常用於透過區域網路 (LAN) 通訊的遊戲,或在各種本機裝置上共用資料的應用程式。 如果應用程式指定 musicLibrary、picturesLibrary 或 videosLibrary,則您不需使用這個功能來存取「家用群組」中對應的媒體櫃。 在 Windows 上,此功能不提供網際網路的存取權。 |
約會 | appointments 功能可提供存取使用者的約會存放區。 這項功能提供從已同步網路帳戶取得之約會和其他寫入約會存放區之應用程式的讀取權限。 有了這個功能,您的應用程式就可以建立新的行事曆,以及將約會寫入建立的行事曆中。 在您的應用程式套件資訊清單中宣告 appointments 功能時,它必須包含 uap 命名空間,如下所示。 <Capabilities><uap:Capability Name="appointments"/></Capabilities> |
連絡人* | contacts 功能可存取來自各個連絡人存放區的連絡人彙總檢視。 此功能提供應用程式有限的存取權 (套用網路許可規則),讓應用程式存取與各種網路同步的連絡人和本機連絡人存放區。 在您的應用程式套件資訊清單中宣告 contacts 功能時,它必須包含 uap 命名空間,如下所示。 <Capabilities><uap:Capability Name="contacts"/></Capabilities> |
程式碼產生 | codeGeneration 功能讓應用程式能夠存取下列函式,以提供 JIT 功能給應用程式。 VirtualProtectFromApp CreateFileMappingFromApp OpenFileMappingFromApp MapViewOfFileFromApp |
AllJoyn | allJoyn 功能讓網路上具備 AllJoyn 功能的應用程式和裝置能夠進行探索且與彼此互動。 存取 Windows.Devices.AllJoyn 命名空間中之 API 的所有應用程式都必須使用這個功能。 |
通話 | phoneCall 功能讓應用程式能夠存取裝置上的所有電話線路,並執行下列功能。
<Capabilities><uap:Capability Name="phoneCall"/></Capabilities> phoneCallHistoryPublic 功能讓應用程式能夠讀取行動電話和該裝置上的一些 VoIP 通話歷程記錄資訊。 這個功能也可讓應用程式寫入 VoIP 通話歷程記錄項目。 需要具備這項功能,才能存取 PhoneCallHistoryStore 類別的所有成員。 |
錄製的通話資料夾* | recordedCallsFolder 裝置功能讓應用程式能夠存取錄製的通話資料夾。 在您的應用程式套件資訊清單中宣告 recordedCallsFolder 功能時,它必須包含 mobile 命名空間,如下所示。 <Capabilities><mobile:Capability Name="recordedCallsFolder"/></Capabilities> |
使用者帳戶資訊* | userAccountInformation 功能讓應用程式能夠存取使用者的名稱和圖片。 需要具備這項功能,才能存取 Windows.System.UserProfile 命名空間中的某些 API。 在您的應用程式套件資訊清單中宣告 userAccountInformation 功能時,它必須包含 uap 命名空間,如下所示。 <Capabilities><uap:Capability Name="userAccountInformation"/></Capabilities> |
VoIP 通話 | voipCall 功能讓應用程式能夠存取 Windows.ApplicationModel.Calls 命名空間中的 VoIP 通話 API。 在您的應用程式套件資訊清單中宣告 voipCall 功能時,它必須包含 uap 命名空間,如下所示。 <Capabilities><uap:Capability Name="voipCall"/></Capabilities> |
3D 物件 | objects3D 功能讓應用程式能以程式設計的方式存取 3D 物件檔案。 這項功能通常用於需要存取整個 3D 物件程式庫的 3D 應用程式和遊戲。 需要具備這項功能,才能使用 Windows.Storage 命名空間中的 API 存取包含 3D 物件的資料夾。 在您的應用程式套件資訊清單中宣告 objects3D 功能時,它必須包含 uap 命名空間,如下所示。 <Capabilities><uap:Capability Name="objects3D"/></Capabilities> |
聊天訊息存取* | 聊天功能可讓應用程式讀取和刪除 SMS 和多媒體簡訊。 它也允許應用程式將訊息儲存在系統資料存放區中。 需要具備這項功能,才能使用 Windows.ApplicationModel.Chat 命名空間中的 API 存取訊息。 在您的應用程式套件資訊清單中宣告 chat 功能時,它必須包含 uap 命名空間,如下所示。 <Capabilities><uap:Capability Name="chat"/></Capabilities> |
讀取已封鎖訊息* | blockedChatMessages 功能讓應用程式能夠讀取已由垃圾郵件篩選應用程式封鎖的 SMS 和多媒體簡訊訊息。 需要具備這項功能,才能使用 Windows.ApplicationModel.Chat 命名空間中的 API 存取已封鎖的訊息。 在您的應用程式套件資訊清單中宣告 blockedChatMessages 功能時,它必須包含 uap 命名空間,如下所示。 <Capabilities><uap:Capability Name="blockedChatMessages"/></Capabilities> |
自訂裝置 | 在達到一些額外的要求時,lowLevelDevices 功能可讓應用程式存取自訂裝置。 這項功能不應與 lowLevel 裝置功能混淆,後者可讓您存取 GPIO、I2C、SPI、PWM 裝置。 如果您開發的自訂驅動程式會公開 裝置介面,而且您想要開啟此裝置的控制代碼並傳送 IOCTL,您必須:
|
IoT 系統管理 | systemManagement 功能讓應用程式具備基本的系統管理權限,例如關機或重新啟動、地區設定和時區。 需要具備這項功能,才能存取 Windows.System 命名空間中的某些 API。 在您的應用程式套件資訊清單中宣告 systemManagement 功能時,它必須包含 iot 命名空間,如下所示。 <Capabilities><iot:Capability Name="systemManagement"/></Capabilities> |
背景媒體播放 | backgroundMediaPlayback 功能會變更媒體特定 API (例如 MediaPlayer 和 AudioGraph 類別) 的行為,以在應用程式位於背景時啟用媒體播放。 所有作用中的音訊串流將不再設為靜音,但在應用程式轉換到背景時仍可繼續聽到聲音。 此外,應用程式存留期會在播放發生時自動延伸。 |
遠端系統 | remoteSystem 功能讓應用程式能夠存取與使用者 Microsoft 帳戶相關聯的裝置清單。 需要存取裝置清單,才能執行跨裝置保存的任何作業。 需要具備這項功能,才能存取下列所有成員。 |
空間感知 | spatialPerception 功能提供空間對應資料的程式設計存取,並提供有關使用者附近空間的應用程式指定區域中表面的混合實境應用程式資訊。 只有在應用程式明確使用這些表面網格時,才要宣告 spatialPerception 功能,因為混合實境應用程式根據使用者頭部姿勢執行全像轉譯時並不需要此功能。 |
全域媒體控制 | globalMediaControl 功能可讓應用程式存取整個系統中與 SystemMediaTransportControls 整合的播放會話,以提供播放資訊並允許遠端控制。 需要具備這個功能,才能使用 Windows.Media.Control 命名空間中的某些 API。 這項功能是在 uap7:Capability 元素中定義。 |
圖形擷取 | graphicsCapture 功能可讓應用程式取得視窗的螢幕擷取畫面,或在使用者允許時顯示。 需要具備這項功能,才能使用 Windows.Graphics.Capture.GraphicsCapturePicker 物件。 這項功能是在 uap6:Capability 元素中定義。 |
無框線圖形擷取 | graphicsCaptureWithoutBorder 功能可讓應用程式取得螢幕擷取畫面,而無需在視窗或顯示器周圍顯示螢幕擷取畫面框線。 需要具備這項功能,才能使用 Windows.Graphics.Capture.GraphicsCaptureSession.IsBorderRequired 屬性。 這項功能是在 uap11:Capability 元素中定義。 |
程式設計圖形擷取 | graphicsCaptureProgrammatic 功能可讓應用程式自行取得各種視窗或顯示器的螢幕擷取畫面。 必須具備這項功能,才能從 WindowId 或 DisplayId 建立 Windows.Graphics.Capture.GraphicsCaptureItem 物件。 這項功能是在 uap11:Capability 元素中定義。 |
使用者資料工作 | userDataTasks 功能可讓您存取 Windows.ApplicationModel.UserDataTasks 命名空間中的 API,其可讓您存取 Exchange ActiveSync (EAS) 連線和其他提供者應用程式儲存在 Windows 中的工作項目。 |
使用者通知接聽程式 | userNotificationListener 功能可讓您存取 Windows.UI.Notifications.Management 命名空間中的 API,以啟用使用者通知管理。 |
裝置功能
裝置功能可以讓您的應用程式存取周邊和內部裝置。 裝置功能是使用應用程式套件資訊清單中的 DeviceCapability 元素來指定。 此元素可能需要其他子元素,而且某些裝置功能必須手動新增至套件資訊清單。 如需詳細資訊,請參閱如何在套件資訊清單中指定裝置功能和 DeviceCapability 結構描述參考。
注意
封裝資訊清單中的 Capabilities 元素下,您可以有多個 DeviceCapability 元素。 所有 DeviceCapability 元素都必須在任何 Capability 和 CustomCapability 元素之後。
功能案例 | 功能使用方式 |
---|---|
Location* | 位置功能提供從專用硬體 (例如電腦中的 GPS 感應器) 擷取或衍生自可用網路資訊的位置功能存取。 當使用者從設定常用鍵停用定位服務時,應用程式必須能夠處理這種案例。 |
麥克風 | microphone 功能提供存取麥克風的音訊饋送,讓 app 能夠從連接的麥克風錄音。 當使用者從設定常用鍵停用麥克風時,應用程式必須能夠處理這種案例。 |
接近 | 近接功能可以讓多個近接的裝置彼此通訊。 這個功能通常用於輕鬆的多人遊戲,以及交換資訊的應用程式中。 裝置會試著使用提供最佳連線的通訊技術,例如藍牙、Wi-Fi 以及網際網路。 這個功能只能用於起始裝置間的通訊。 |
網路攝影機 | 網路攝影機功能提供存取內建相機或外接式網路攝影機的影片饋送,讓應用程式能夠擷取相片和影片。 在 Windows 上,當使用者從設定常用鍵停用相機時,應用程式必須能夠處理這種案例。 網路攝影機功能只授與對影片串流的存取權。 若要同時授與對音訊串流的存取權,必須新增麥克風功能。 |
USB | USB 裝置功能可讓您存取針對 USB 裝置更新應用程式資訊清單套件中所述的 API。 |
人性化介面裝置 (HID) | humaninterfacedevice 裝置功能可讓您存取如何指定 HID 的裝置功能中的 API。 |
服務點 (POS) | pointOfService 裝置功能可讓您存取 Windows.Devices.PointOfService 命名空間中的 API。 這個命名空間可以讓您的應用程式存取服務點 (POS) 條碼掃描器和磁條讀取器。 這個命名空間提供一個廠商中性介面,可讓您從 UWP 應用程式存取來自各個製造商的 POS 裝置。 |
Bluetooth | 藍牙裝置功能讓應用程式能夠與兩個都透過 Generic Attribute (GATT) 或 Classic Basic Rate (RFCOMM) 通訊協定且配對好的藍牙裝置通訊。 需要具備這個功能,才能使用 Windows.Devices.Bluetooth 命名空間中的某些 API。 |
Wi-Fi 網路功能 | 重要: wiFiControl 裝置功能將受到即將進行的作業系統行為變更所影響,該變更預計於 2024 年秋季發生。 如需詳細資訊,請參閱 Wi-Fi 存取和位置的 API 行為變更。 wiFiControl 裝置功能讓應用程式能夠掃描並連線到 Wi-Fi 網路。 需要具備這項功能,才能使用 Windows.Devices.WiFi 命名空間中的某些 API。 |
無線電狀態 | 無線電裝置功能讓應用程式能夠在 Wi-Fi 和藍牙無線電之間切換。 需要具備這項功能,才能使用 Windows.Devices.Radios 命名空間中的 API。 |
光碟片 | 光學裝置功能讓應用程式能夠存取光碟機 (例如 CD、DVD 及藍光) 上的功能。 需要具備這項功能,才能使用 Windows.Devices.Custom 命名空間中的某些 API。 |
動作活動 | 活動裝置功能讓應用程式能夠偵測裝置目前的動作。 需要具備這項功能,才能使用 Windows.Devices.Sensors 命名空間中的某些 API。 |
人類存在感測 | humanPresence 裝置功能可讓應用程式存取裝置上的人類存在感測器,以提供使用者目前是否在旁邊及互動情形的資訊。 需要具備這項功能,才能使用 Windows.Devices.Sensors 命名空間中的某些 API。 |
序列通訊 | Serialcommunication 裝置功能提供 Windows.Devices.SerialCommunication 命名空間中 API 的存取權,可讓 Windows 應用程式與公開序列埠或序列埠部分抽象概念的裝置進行通訊。 需要具備這個功能,才能使用 Windows.Devices.SerialCommnication 命名空間中的 API。 |
眼動追蹤儀 | 相容眼球追蹤裝置已連線時,或對於支援注視追蹤的混合實境裝置,gazeInput 功能可讓應用程式偵測使用者在應用程式範圍內注視的位置。 需要具備這個功能,才能使用 Windows.Devices.Input.Preview 命名空間中的某些 API。 對於混合實境裝置,Windows.Perception.People.EyesPose 中的 API 需要這項功能。 |
GPIO、I2C、SPI、PWM | lowLevel 裝置功能可讓您存取 GPIO、I2C、SPI、PWM 裝置。 需要具備這項功能,才能使用下列命名空間中的 API: Windows.Devices.Gpio, Windows.Devices.I2c, Windows.Devices.Spi,Windows.Devices.Pwm。<Capabilities><DeviceCapability Name="lowLevel"/></Capabilities> |
受限功能
如果您的應用程式宣告任何受限制的功能,則必須在應用程式提交程序期間提供資訊,才能獲准將您的應用程式發佈至 Microsoft Store。 您可以在提交的 提交選項 頁面上提供這項資訊,說明您的應用程式如何使用它所宣告的每個受限功能。
重要
受限功能適用於非常特殊的情況。 這些功能的用法受到高度限制,而且受其他 Microsoft Store 上架原則和審查規定的規範。 請注意,您可以在不需要收到任何核准的情形下側載有宣告受限功能的應用程式。 只有在將這些應用程式提交到 Microsoft Store 時才需要核准。
除非您的應用程式真正需要,否則請務必不要宣告這些受限功能。 這類功能在某些情況下是必要且適當的,例如具備雙因素驗證的銀行系統,使用者需提供含數位憑證的智慧卡來確認身分識別。 其他應用程式主要可能是針對企業客戶所設計,而且可能需要存取公司資源,若沒有使用者網域認證,便無法存取這類公司資源。
若要宣告受限功能,請修改您的應用程式封裝資訊清單來源檔案 (Package.appxmanifest
)。 新增 xmlns:rescap XML 命名空間宣告,並在宣告受限功能時使用 rescap 前置詞。 例如,以下示範如何宣告 appCaptureSettings 功能。
<?xml version="1.0" encoding="utf-8"?>
<Package
...
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
IgnorableNamespaces="... rescap">
...
<Capabilities>
<rescap:Capability Name="appCaptureSettings"/>
</Capabilities>
</Package>
注意
在封裝資訊清單中的 Capabilities 節點底下,所有的受限功能元素都必須放在任何 CustomCapability 和 DeviceCapability 元素之前。
受限功能核准程序
在過去,我們要求您連絡支援服務以取得使用功能的核准。 我們現在可讓您在合作夥伴中心中提供這項資訊,作為提交程序的一部分。
當您上傳要提交的套件時,我們將偵測是否有宣告受限功能。 如果我們這樣做,您將需要在提交選項頁面提供有關您的產品如何使用每項功能的詳細資訊。 請務必提供詳細資料以協助我們了解您的產品需要宣告該功能的原因。 請注意,應用程式提交可能需要更多時間來完成認證程序。
認證過程中,我們的測試人員將會檢閱您所提供的資訊,以判斷是否核准您提交的應用程式使用該功能。 請注意,應用程式提交可能需要更多時間來完成認證程序。 如果我們核准您使用此功能,您的應用程式將繼續進行認證程序的其餘部分。 當您提交應用程式的更新時,通常不必重複功能核准程序 (除非您宣告其他功能)。
如果我們不核准您使用此功能,您的提交無法通過認證,而且我們將會在認證報告中提供意見反應。 然後,您可以選擇建立新的提交和上傳不宣告此功能的套件,或 (如果適用) 解決有關您使用此功能的任何問題,並在新提交中要求核准。
注意
如果您的提交使用合作夥伴中心中的開發沙箱 (例如,與 Xbox Live 整合的任何遊戲案例),您必須預先要求核准,而不是在 [提交選項] 頁面提供資訊。 如果您要透過 ID@Xbox 或以受管理的合作夥伴身分將遊戲發佈至 Xbox,您可以事先要求核准。 若要這樣做,請連絡您的 Microsoft 帳戶團隊。
該團隊將需要您簡單說明一下,您會如何使用該項功能以及為什麼您的產品需要該項功能。 如果您未提供所有必要資訊,您的要求將會遭到拒絕。 您可能還需要提供更多資訊。 請注意,此程序通常會需要 5 個工作天或更長,所以請事前提交您的要求。
不論您是否使用開發沙箱,如果您想要在開始提交之前先確認能獲准使用受限功能,也可以利用這種方式來要求核准 (而不是在提交期間提供這項資訊)。
受限功能清單
下表列出受限制的功能。 您可以依照上述的程序,為提交到 Microsoft Store 的應用程式中的這些功能要求核准。
重要
除非在非常特定與有限的情況中,否則提交到 Microsoft Store 的應用程式,某些受限制的功能幾乎不會獲得核准。 下表說明這些功能。 如果您想要透過 Microsoft Store 散發您的應用程式,建議您不要在應用程式中宣告這些功能。
功能案例 | 功能使用方式 |
---|---|
企業 | Windows 網域認證可以讓使用者使用其認證登入遠端資源,如同使用者提供其使用者名稱和密碼一樣。 enterpriseAuthentication 功能通常是在連線到企業內伺服器的特定業務應用程式中使用。 您不需要這項功能,即可在網際網路間進行一般通訊。 enterpriseAuthentication 功能的目的在於支援常見的特定業務應用程式。 請勿在不需要存取公司資源的應用程式中宣告此功能。 檔案選擇器 提供強固的 UI 機制,讓使用者能夠開啟網路共用上的檔案,以便與應用程式搭配使用。 只有當您應用程式的案例需要以程式設計方式進行存取,而您無法使用檔案選擇器來實現時,才需宣告 enterpriseAuthentication 功能。 在您的應用程式套件資訊清單中宣告 enterpriseAuthentication 功能時,它必須包含 uap 命名空間,如下所示。 <Capabilities><uap:Capability Name="enterpriseAuthentication"/></Capabilities> 需要具備這項功能,才能呼叫 GetUserNameEx 函式。 enterpriseDataPolicy 功能可讓應用程式在使用 Windows 資訊保護原則管理應用程式時,安全地分開處理企業資料 (例如:行動裝置管理和行動應用程式管理系統)。 如下宣告此受限功能: <Capabilities><rescap:Capability Name="enterpriseDataPolicy"/></Capabilities> 需要具備這項功能,才能使用下列類別的所有成員。 |
共用的使用者憑證 | sharedUserCertificates 功能可讓應用程式在「共用使用者」存放區中新增和存取軟體和硬體型憑證,例如儲存在智慧卡的憑證。 這個功能通常用於需要使用智慧卡進行驗證的金融或企業應用程式。 在您的應用程式套件資訊清單中宣告 sharedUserCertificates 功能時,它必須包含 uap 命名空間,如下所示。 <Capabilities><uap:Capability Name="sharedUserCertificates"/></Capabilities> |
文件* | documentsLibrary 功能提供以程式設計方式存取使用者的 [文件] 程式庫 (並篩選出封裝資訊清單所宣告的檔案類型關聯)。 例如,如果文書處理應用程式宣告了 .doc 檔案類型關聯,它就可以開啟使用者 [文件] 程式庫中的 .doc 檔案。 只有在應用程式以程式設計方式存取 Documents 程式庫,而「不需」使用者介入時,才需要 documentsLibrary 功能。 如果使用者使用選擇器 API 進行選擇,您的應用程式不需要 documentsLibrary 功能即可存取 Documents 程式庫。 一般而言,應用程式應該使用下列其中一個選擇器 API 來允許使用者選擇其檔案的位置:
在現有工作流程假設檔案會在 [文件] 程式庫中 (例如,與現有的傳統型應用程式交互操作) 的情況,或您不想讓使用者選擇位置的情況下,您可以為應用程式宣告 documentsLibrary 功能。 如果您的應用程式使用 documentsLibrary 功能,建議您也允許使用者手動挑選位置。 在您的應用程式套件資訊清單中宣告 documentsLibrary 功能時,它必須包含 uap 命名空間,如下所示。 <Capabilities><uap:Capability Name="documentsLibrary"/></Capabilities> |
遊戲 DVR 設定 | appCaptureSettings 受限制的功能讓應用程式能夠控制遊戲 DVR 的使用者設定。 需要具備這項功能,才能使用 Windows.Media.Capture 命名空間中的某些 API。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
行動電話通訊 | cellularDeviceControl 受限制的功能讓應用程式能夠控制行動電話通訊裝置。 cellularDeviceIdentity 功能讓應用程式能夠存取行動電話通訊識別資料。 cellularMessaging 功能讓應用程式能夠使用 SMS 和 RCS。 需要具備這項功能,才能使用 Windows.Devices.Sms 命名空間中的某些 API。 |
裝置解除鎖定 | deviceUnlock 受限制的功能讓應用程式能夠解除鎖定裝置,以供開發人員和企業側載案例使用。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
雙 SIM 卡磚 | dualSimTiles 受限制的功能讓應用程式能夠在配備多張 SIM 卡的裝置上建立其他應用程式清單項目。 需要具備這項功能,才能使用 Windows.UI.StartScreen 命名空間中的某些 API。 |
企業共用存放裝置 | enterpriseDeviceLockdown 受限制的功能讓應用程式使用裝置鎖定 API,以及存取企業共用存放裝置資料夾。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
系統輸入導入 | inputInjection 受限功能讓應用程式能夠以程式設計方式,將各種不同形式的輸入 (例如,HID、觸控、手寫筆、鍵盤、滑鼠) 導入系統中。 這項功能通常用於可控制系統的共同作業應用程式。 在電腦上,從具備此功能的應用程式導入的輸入源,只能透過位於相同應用程式容器的處理程序來接收。 <Capabilities><rescap:Capability Name="inputInjectionBrokered" /></Capabilities> |
觀察輸入* | inputObservation 受限制的功能讓應用程式能夠觀察系統所接收到的各種不同形式的原始輸入 (例如,HID、觸控、手寫筆、鍵盤或滑鼠),而不論其最終目的地為何。 這項功能及其相關的 API 僅供選定的 Microsoft 合作夥伴使用。 |
隱藏輸入 | inputSuppression 受限制的功能讓應用程式能夠隱藏系統所接收到的各種不同形式的原始輸入 (例如,HID、觸控、手寫筆、鍵盤或滑鼠)。 這項功能及其相關的 API 僅供選定的 Microsoft 合作夥伴使用。 |
VPN 應用程式 | networkingVpnProvider 受限制的功能讓應用程式能夠具備 VPN 功能的完整存取,包括管理連線的能力,以及提供 VPN 外掛程式功能。 需要具備這項功能,才能使用 Windows.Networking.Vpn 命名空間中的某些 API。 |
其他應用程式管理 | packageManagement 受限制的功能讓應用程式能夠直接管理其他應用程式。 packageQuery 裝置功能讓應用程式能夠收集其他應用程式的相關資訊。 需要具備這項功能,才能使用存取 PackageManager 類別中的某些方法和屬性。 |
畫面投影 | screenDuplication 受限制的功能讓應用程式能將畫面投影到其他裝置。 需要具備這項功能,才能使用 DirectX 命名空間中的 API。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
使用者主體名稱 | userPrincipalName 受限功能可讓應用程式存取目前使用者的使用者主要名稱 (UPN)。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
電子錢包 | walletSystem 受限制的功能讓應用程式能完整存取儲存式電子錢包卡片。 需要具備這項功能,才能使用 Windows.ApplicationModel.Wallet.System 命名空間中的 API。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
位置歷程記錄 | locationHistory 受限制的功能讓應用程式能夠存取裝置的位置歷程記錄。 需要具備這項功能,才能使用 Windows.Devices.Geolocation 命名空間中的 API。 |
應用程式關閉確認 | confirmAppClose 受限制的功能讓應用程式能夠自行關閉、關閉本身的視窗以及延遲關閉其應用程式。 Windows 10 版本 1703 (組建 10.0.15063) 及更新版本的應用程式可能會要求此功能。 在先前的 Windows 10 版本中,此功能為私用,並且導致應用程式安裝失敗而顯示「此應用程式無法授權要求的功能」錯誤訊息。 |
通話記錄* | phoneCallHistory 受限制的功能讓應用程式能夠讀取通訊記錄並刪除記錄中的項目。 需要具備這項功能,才能使用 Windows.ApplicationModel.Chat 命名空間中的 API。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
系統層級的約會存取 | appointmentsSystem 受限制的功能讓應用程式能夠讀取和修改使用者行事曆上的所有約會。 需要具備這項功能,才能使用 Windows.ApplicationModel.Appointment 命名空間中的 API。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
系統層級的聊天訊息存取* | chatSystem 受限制的功能讓應用程式能夠讀取和寫入所有 SMS 和多媒體簡訊訊息。 需要具備這項功能,才能使用 Windows.ApplicationModel.Chat 命名空間中的 API。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
系統層級的連絡人存取 | contactsSystem 受限制的功能讓應用程式能夠讀取已指定為受限制或敏感的連絡人資訊,並修改現有的連絡人資訊。 需要具備這項功能,才能使用 Windows.ApplicationModel.Chat 命名空間中的 API。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
電子郵件存取 | email 受限制的功能讓應用程式能夠讀取、分級及傳送使用者電子郵件。 需要具備這項功能,才能使用 Windows.ApplicationModel.Email 命名空間中的 API。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
系統層級的電子郵件存取 | emailSystem 受限制的功能讓應用程式能夠讀取、分級及傳送受限制或敏感的使用者電子郵件。 需要具備這項功能,才能使用 Windows.ApplicationModel.Email 命名空間中的 API。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
系統層級的通話記錄存取 | phoneCallHistorySystem 受限制的功能讓應用程式能夠透過變更現有項目及撰寫新項目來完整修改通話記錄。 需要具備這項功能,才能使用 Windows.ApplicationModel.Calls 命名空間中的 API。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
傳送簡訊* | smsSend 受限制的功能讓應用程式能夠傳送 SMS 和多媒體簡訊訊息。 需要具備這項功能,才能使用 Windows.ApplicationModel.Chat 命名空間中的 API。 |
所有使用者資料的系統層級存取 | userDataSystem 受限制的功能讓應用程式能夠存取使用者資料系統資料存放區。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
Store 預覽功能 | previewStore 受限制的功能讓應用程式能夠擷取並購買應用程式內產品的 SKU。 需要具備這項功能,才能使用 Windows.ApplicationModel.Store.Preview 命名空間中的特定 API。 |
第一次登入設定 | firstSignInSettings 受限制的功能讓應用程式能夠存取使用者首次登入其裝置時所設定的使用者設定。 |
Windows Teams 體驗 | teamEditionExperience 受限制的功能讓應用程式能夠存取控制 Windows 小組工作階段各個體驗層面的內部 API。 Windows 小組工作階段可能會在小組裝置 (如 Microsoft Surface Hub) 上執行。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
遠端解除鎖定 | remotePassportAuthentication 受限制的功能讓應用程式能夠存取可以用來解除遠端電腦鎖定的認證。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
預覽組合 | previewUiComposition 受限制的功能讓應用程式能夠預覽其使用者介面的 Windows.UI.Composition 命名空間,以便他們可以在完成 API 之前提供意見反應。 如需詳細資訊,請連絡 wincomposition@microsoft.com。 |
安全性評定鎖定 | secureAssessment 受限制的功能讓應用程式能夠將 Windows 鎖定為單一應用程式模式以進行安全評定。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
連線管理員佈建 | networkConnectionManagerProvisioning 受限制的功能讓應用程式定義將裝置連線到 WWAN 和 WLAN 介面的原則。 電信業者會建立使用這個功能的應用程式,以便管理連線至其行動網路的裝置。 |
行動數據方案佈建 | networkDataPlanProvisioning 受限制的功能讓應用程式能夠收集裝置上行動數據方案的相關資訊,並讀取網路使用量。 電信業者會建立使用這個功能的 app,以便將其客戶的實際數據使用量整合到 OS 數據使用量設定。 |
軟體授權 | slapiQueryLicenseValue 受限制的功能讓應用程式能夠查詢軟體授權原則。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
延伸執行 | ExtendedBackgroundTaskTime 受限功能可防止背景工作因執行時間限制而遭到取消或終止。 但仍會受制於所有其他記憶體和能源使用量的限制。 這項功能可以透過電池使用量或隱私權背景應用程式設定進行限制。 請注意:消費者和系統管理員仍然可以透過群組原則設定控制背景工作。 extendedExecutionBackgroundAudio 受限制的功能讓應用程式能夠在背景執行時也能播放音訊。 extendedExecutionCritical 受限制的功能讓應用程式能夠開始重大延伸執行工作階段。 extendedExecutionUnconstrained 受限制的功能讓應用程式能夠開始不受限制的延伸執行工作階段。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 如需有關在應用程式暫止時使用延伸執行延期的詳細資訊,請參閱透過延長執行延後應用程式暫停。 |
行動裝置管理 | deviceManagementDmAccount 受限制的功能讓應用程式能夠佈建和設定電信業者開放行動裝置聯盟 - 裝置管理 (MO OMA-DM) 帳戶。 deviceManagementFoundation 受限制的功能讓應用程式能夠基本存取裝置上的行動裝置管理 (MDM) 設定服務提供者 (CSP) 基礎結構。 請注意,需有其他功能才能存取特定 CSP。 deviceManagementWapSecurityPolicies 受限制的功能讓應用程式能夠設定無線應用通訊協定 (WAP) 服務,例如 MMS、服務指示/服務載入 (SI/SL) 及開放行動裝置聯盟 - 用戶端佈建 (OMA-CP)。 deviceManagementEmailAccount 受限制的功能讓應用程式能夠由電信業者建立,以便在他們佈建給使用者的裝置上新增和管理電子郵件帳戶。 |
套件原則控制項 | packagePolicySystem 受限制的功能讓應用程式能夠掌控裝置上所安裝之應用程式的相關系統原則。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
遊戲清單 | gameList 受限制的功能讓應用程式能夠取得系統上已安裝的知名遊戲清單。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
Xbox 配件 | xboxAccessoryManagement 受限制的功能讓應用程式能夠直接管理符合 Xbox 硬體規格的 Xbox 裝置。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
附屬應用程式的語音辨識 | cortanaSpeechAccessory 受限制的功能讓應用程式能夠叫用並傳遞命令到 Cortana。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
配件管理 | accessoryManager 受限制的功能讓應用程式能夠註冊為配件專屬應用程式,並選擇加入特定應用程式通知,以便將它們轉送到配件並向使用者顯示。 |
驅動程式存取 | interopServices 受限制的功能讓應用程式能夠直接與驅動程式互動。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
前景觀察 | inputForegroundObservation 受限制的功能讓前景的應用程式能夠攔截鍵盤輸入,並略過所有非應用程式鍵盤輸入的處理。 此功能無法攔截 SAS 組合。 需要具備這項功能,才能存取 KeyboardDeliveryInterceptor 類別的成員。 |
OEM 和 MO 合作夥伴應用程式 | oemDeployment 受限制的功能讓 Microsoft 合作夥伴建立的應用程式可以在裝置上安裝新的應用程式和查詢目前安裝的應用程式。 oemPublicDirectory 受限制的功能讓 Microsoft 合作夥伴建立的應用程式可以存取共用應用程式資料夾。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
應用程式授權 | appLicensing 受限制的功能可允許應用程式在不需要授權的情況下執行。 如果您在資訊清單中宣告此功能,您就無法將應用程式提交至市集。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
位置系統 | locationSystem 受限制的功能可允許應用程式執行特定需要特殊權限的位置設定,例如設定裝置的預設位置。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
使用者資料帳戶提供者 | userDataAccountsProvider 受限制的功能讓應用程式能夠完全管理電子郵件、行事曆及連絡人帳戶。 |
手寫筆工作區 | previewPenWorkspace 功能讓應用程式能夠存取 Windows.ApplicationModel.Preview.Notes 命名空間,此命名空間要裝載於手寫筆工作區內部,以做為記住動作處理常式。 |
第二個驗證因素 | secondaryAuthenticationFactor 功能讓應用程式能夠透過傳送儲存於鄰近隨附驗證裝置上的密碼來解除鎖定電腦。 例如,隨附的健身手環可以用來解除鎖定電腦。 需要具備這項功能,才能存取 Windows.Security.Authentication.Identity.Provider 命名空間中的 API。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
Store 授權管理 | storeLicenseManagement 功能讓 Microsoft 合作夥伴中樞應用程式能夠管理裝置上的市集授權。 需要具備這項功能,才能存取 Windows.ApplicationModel.Store.LicenseManagement 命名空間中的 API。 |
使用者系統識別碼 | userSystemId 功能讓應用程式能夠取得使用者特定的系統識別碼。 這個識別碼可唯一識別特定系統上目前的使用者,也可以用來使應用程式間的資訊互相關聯。 需要具備這項功能,才能存取 SystemIdentification.GetSystemIdForUser(User) 方法。 |
目標式內容 | TargetedContent 功能提供應用程式擷取及使用 Windows.Services.TargetedContent 命名空間提供之目標訂閱內容的能力。 必須具備這項功能,才能使用 Windows.System.Profile.SystemIdentification 命名空間中的某些 API。 |
UI 自動化 | uiAutomation 功能可讓 UI 自動化用戶端 (例如朗讀程式) 連接至 UI 自動化伺服器或提供者。 必須具備這項功能,才能使用 Windows.Xbox.Media.Capture.Broadcaster 命名空間中的某些 API。 |
遊戲列服務 | gameBarServices 僅限於第一方 Microsoft Store 可更新收件匣的 UWA。 必須具備這項功能,才能使用 Windows.Media.Capture.GameBarsSrvices 類別。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
應用程式擷取服務 | appCaptureServices 功能僅限於與 Microsoft 具有契約關係之對象。 這些關係會根據由 Xbox 服務及 bizdev 支援推動的合作夥伴協議進行授與。 必須具備這項功能,才能使用 Windows.Media.Capture.AppCaptureServices 類別。 |
應用程式廣播服務 | appBroadcastServices 功能僅限於與 Microsoft 具有契約關係之對象。 這些關係會根據由 Xbox 服務支援推動的合作夥伴協議進行授與。 必須具備這項功能,才能使用 Windows.Media.capture.AppBroadcastServices 類別。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
音訊裝置設定 | audioDeviceConfiguration 功能可以讓應用程式查詢、設定、啟用、停用音訊驅動程式公開的音訊效果。 必須具備這項功能,才能使用 Windows.Media.Devices.AudioDeviceModulesManager 類別。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 這是因為 AudioDeviceModulesManager 可讓應用程式存取特定系統上所有的音訊效果。 而音訊效果有可能會用於造成裝置上音訊效能的負面影響。 |
背景媒體錄影 | backgroundMediaRecording 功能會變更媒體特定 API (例如 MediaCapture 和 AudioGraph 類別) 的行為,以便在您的應用程式位於背景時啟用媒體錄影。 |
預覽 Ink 工作區 | previewInkWorkspace 功能可讓應用程式存取裝載在 Ink 工作區的預覽 Ink 命名空間。 一般而言,OEM 會使用這項功能來取代裝置上的白板應用程式。 必須具備這項功能,才能使用 Windows.ApplicationModel.Preview.InkWorkspace 命名空間中的 API。 |
開始畫面管理 | startScreenManagement 功能可讓應用程式直接將磚釘選至開始畫面。 應用程式也可以在背景進行釘選。 不具備 startScreenManagement 功能並不會封鎖任何 API。然而,使用 startScreenManagement 表示命令介面不會在任何應用程式使用釘選 API 時顯示任何 UI。 |
Cortana 權限 | cortanaPermissions 功能可讓應用程式列舉使用者授與裝置上 Cortana 的權限。 此功能同時也允許應用程式授與或撤銷裝置上 Cortana 的權限。 請注意,使用 cortanaPermissions 需要裝置在授與權限前顯示法律聲明文字。 因此,應用程式應負起責任,告知使用者修改權限可能造成的法律後果。 必須具備這項功能,才能取得 HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Search 登錄設定的讀取權限。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
所有應用程式模組 | allAppMods 功能可讓應用程式存取所有應用程式的 AppMods 資料夾。 模組管理公用程式使用 allAppMods 在使用該模組的遊戲或應用程式之外管理模組。 |
展開的資源 | expandedResources 功能可讓應用程式存取遊戲模式資源。 在 Xbox 以及符合足夠標準的電腦上,遊戲模式資源代表可供應用程式獨佔使用的保留 CPU 核心子集。 在 Xbox 上,應用程式也有至少 4 GB 記憶體分割的獨佔使用權。 必須具備這項功能,才能取得如上方所定義之 CPU 和記憶體資源的獨佔使用權。 |
受保護的應用程式 | protectedApp 功能授與應用程式能夠被 Microsoft Store 載入受保護程序的能力。 當應用程式內嵌至 Microsoft Store 時,Microsoft Store 會在執行檔中加入一個 blob。 Microsoft Store 也會使用 Microsoft 金鑰在執行檔上頁面簽署。 由於 blob 需要 Microsoft 的簽章,程序載入器會檢查此 blob,而非這個功能強迫受保護的程序。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
遊戲監視器 | gameMonitor 功能會讓系統使用主動式監視來偵測應用程式的遊戲作弊行為。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
應用程式診斷 | appDiagnostics 功能可讓應用程式取得任何其他正在執行中之 UWP 應用程式的診斷資訊 (例如:套件資訊、記憶體使用量、帳戶名稱)。 傳回的資訊包含了正在執行該應用程式的網域/機器帳戶名稱。若呼叫的應用程式是以系統管理員權限啟動的,則該應用程式還可以擷取機器上所有帳戶正在執行的所有應用程式清單。 必須具備這項功能,才能使用 Windows.System.AppDiagnosticInfo、Windows.System.AppDiagnosticInfo.RequestAppDiagnosticInfoAsync、Windows.ApplicationModel.AppInfo 類別。 |
裝置入口網站提供者 | devicePortalProvider 功能可讓應用程式呼叫 Windows.System.Diagnostics.DevicePortal API,並在開發人員模式下做為診斷工具的網頁伺服器。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
企業雲端單一登入 | enterpriseCloudSSO 功能可讓應用程式搭配 Web 檢視託管控制項內部的 Azure Active Director (AAD) 資源使用單一登入。 |
自動接受 VoIP 通話 | backgroundVoIP 功能可讓您自動接收和接聽 VoIP 來電,而不需要使用者明確接受通話。 使用這項功能的應用程式獲得攝影機及麥克風的完整控制權,並且可以在背景使用這些資源。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 大部分的開發人員都不會獲得核准使用這項功能。 |
保留 VoIP 通話的資源 | oneProcessVoIP 功能可讓您在單一進程應用程式中,保留 VoIP 通話所需的 CPU 和記憶體資源。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 大部分的開發人員都不會獲得核准使用這項功能。 |
開發模式網路 | 呼叫 C++/CX UWP 應用程式或 C++ Windows 執行階段元件中的 OpenFile Win32 API 時,developmentModeNetwork 功能可讓應用程式使用已登入使用者的認證存取網路路徑。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
廣泛的檔案系統存取 | broadFileSystemAccess 功能可讓應用程式在沒有任何其他檔案選擇器樣式提示的情況下,於執行階段期間取得和目前正在執行應用程式的使用者同樣的檔案系統存取權。 請務必注意,存取使用者已使用 FilePicker 或 FolderPicker 選擇的檔案時,不需要這項功能。 這項功能適用於 Windows.Storage API。 由於使用者隨時都可以在 [設定] 中授與或拒絕權限,您應該確定應用程式針對那些變更具備復原性。 在 2018 年 4 月更新中,該權限的預設值為 [開啟]。 在 2018 年 10 月更新中,預設值為 [關閉]。 同樣重要的是,請勿宣告任何使用這項功能的特殊資料夾功能,例如 [文件]、[圖片] 或 [影片]。 您可以藉由將 broadFileSystemAccess 新增至資訊清單,在您的應用程式中啟用這項功能。 如需範例,請參閱檔案存取權限一文。 在大部分情況下,若要存取檔案系統位置,您的應用程式可以使用 FileOpenPicker、FileSavePicker、FolderPicker 及 FutureAccessList API。 如果您想要要求核准使用 broadFileSystemAccess 功能,則必須提供具體原因,說明為什麼這些 API 不足以滿足您的需求。 注意:Xbox 上不支援此功能。 |
系統韌體和 BIOS | smbios 功能讓應用程式能夠存取 BIOS 資料和系統韌體資料。 |
完全信任權限層級 | 這是 runFullTrust 受限制的功能。 詞彙定義如下,但簡言之,如果套件使用需要完全信任的功能,則套件需要這項功能。 常見的範例是包含一個或多個完全信任應用程式的套件。 runFullTrust 受限制的功能可讓這類套件安裝在機器上。 完全信任應用程式是將 uap10:TrustLevel 設定為 mediumIL 的應用程式 (請參閱應用程式元素)。 完全信任應用程式有個處理程序,其執行的程式完整性層級為中 (請參閱強制完整性控制)。 套件是 .appx 或 MSIX 套件 (請參閱從程式碼組建 MSIX 套件)。另一個需要此功能的範例是具有 windows.firewallRules 延伸功能類別的套件 (請參閱 desktop2:Extension)。 這被認為是完全信任的功能;在該範例中,沒有要啟動的應用程式,也沒有啟動處理程序。 若要使用 FullTrustProcessLauncher 類別,也需要這項功能。 |
提升權限 | allowElevation 受限功能可讓 Microsoft 合作夥伴和企業所建立的應用程式,保留在啟動時或在應用程式存留期期間需要自動提升權限的現有傳統型功能。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 只有在企業透過商務用 Microsoft Store 將營運應用程式部署到其私人存放區的情況下,才會核准此功能。 |
Windows Teams 裝置認證 | teamEditionDeviceCredential 受限功能可讓應用程式在執行 Windows 10 1703 版或更新版本的 Surface Hub 裝置上,存取要求裝置帳號認證的 API。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
Windows Teams 應用程式檢視 | teamEditionView 受限功能可讓應用程式存取 API,以便在執行 Windows 10 版本 1703 或更新版本的 Surface Hub 裝置上裝載應用程式檢視。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
相機處理延伸模組 | cameraProcessingExtension 受限功能可讓應用程式處理從相機擷取的影像,而不需要直接控制相機。 需要具備這個功能,才能呼叫 Windows.Devices.PointOfService.Provider 命名空間中的 API。 任何人都可以要求存取此功能以進行市集提交。 |
資料使用方式管理 | networkDataUsageManagement 受限功能可讓應用程式收集網路資料使用資訊。 需要有這項功能,才能呼叫 GetAttributedNetworkUsageAsync。 任何人都可以要求存取此功能以進行市集提交。 |
管理電話線連線能力 | phoneLineTransportManagement 功能可讓應用程式管理負責電話線連線的系統裝置。 需要具備這個功能,才能使用 Windows.ApplicationModel.Calls 命名空間中的 PhoneLineTransportDevice API。 |
未虛擬化的資源 | unvirtualizedResources 受限功能可讓您的應用程式在其封裝資訊清單中宣告 RegistryWriteVirtualization 和 FileSystemWriteVirtualization 元素,以停用登錄和檔案系統的虛擬化。 這些宣告會防止系統將任何對 HKEY_CURRENT_USER 或對使用者 AppData 資料夾的寫入分別虛擬化。 當您的應用程式需要其他應用程式讀取或寫入與您的應用程式相同的登錄或檔案系統項目時,這會很有用。 這項功能是針對由 Microsoft 和我們的合作夥伴發佈的幾種特定傳統型電腦遊戲所設計。 使用外部位置封裝的應用程式也需要它 (請參閱透過在外部位置進行封裝授與套件識別資料)。 其並不適合用於其他案例,因為可能會危害系統完全解除安裝的能力。 |
可修改的應用程式 | modifiableApp 受限功能可讓您的應用程式在其封裝資訊清單中宣告 windows.mutablePackageDirectories 延伸模組。 這使得您可以為您的應用程式預期有修改後檔案或新增檔案的資料夾提供名稱。 OS 會建立此資料夾,並讓您的應用程式使用此資料夾中的檔案,而不是使用 (或額外再使用) 應用程式原本安裝的檔案。 這項功能是針對由 Microsoft 和我們的合作夥伴發佈的幾種特定傳統型電腦遊戲所設計。 因為此功能允許未簽署的程式碼執行,故不會核准其用在其他案例。 |
套件寫入重新導向相容性填充碼 | packageWriteRedirectionCompatibilityShim 受限功能會將您的應用程式設定為在每個使用者的位置建立所有新檔案。 系統會將為了寫入而開啟的任何預先存在檔案都先複製到每個使用者的位置,然後修改這些位置中的檔案。 這項功能適用於可在其安裝資料夾中建立或修改檔案的應用程式。 這項功能是針對由 Microsoft 和我們的合作夥伴發佈的幾種特定傳統型電腦遊戲所設計。 不過,在某些情況下,它也可能適用於其他應用程式。 |
自訂安裝動作 | customInstallActions 受限功能可讓您的應用程式在其封裝資訊清單中宣告 windows.customInstall 延伸模組,讓它可以指定一或多個與您的應用程式一起執行的額外安裝程式檔案 (.exe 或 .msi)。 這可讓您為任何標準部署案例指定自訂動作:安裝、更新、修復或解除安裝。 例如,這適用於搭售協力廠商可轉散發元件的應用程式。 這項功能是針對由 Microsoft 和我們的合作夥伴發佈的幾種特定傳統型電腦遊戲所設計。 不會核准其用在其他案例。 |
封裝的服務 | packagedServices 受限功能可讓 Microsoft 合作夥伴和企業所建立的應用程式在其封裝資訊清單中宣告 windows.service 延伸模組,使其可以與應用程式一起安裝一或多個服務。 這些服務可以設定為在本機服務、網路服務或本機系統帳戶下執行。 本機服務和網路服務服務只需要 packagedServices 功能。 本機系統服務需要 packagedServices 和 localSystemServices 功能。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
本機系統服務 | localSystemServices 受限功能可讓 Microsoft 合作夥伴和企業所建立的應用程式與應用程式一起安裝一或多個本機系統服務 (也就是,您的應用程式可以將服務的 StartAccount 宣告為 LocalSystem)。 此案例也需要 packagedServices 功能。 我們不建議您在提交至 Microsoft Store 的應用程式中宣告這項功能。 在大部分情況下,不會核准此功能的使用。 |
背景空間感知 | backgroundSpatialPerception 受限功能可讓應用程式在背景執行時仍能存取使用者的頭、手、動作控制器和其他追蹤物件的移動。 |
UI 存取 | UIAccess 是 Windows 中的一項功能,可讓某些受信任的應用程式與其他應用程式的使用者介面 (UI) 互動,即使這些應用程式是以較高權限執行或在安全桌面工作階段中執行也一樣。 協助工具和自動化軟體通常會使用這項功能,為使用者提供與應用程式互動的替代方式。 當應用程式資訊清單檔案中 requestedExecutionLevel 元素的 uiAccess 屬性設定為 true 時,就必須指定 uiAccess 受限功能。 如需詳細資訊,請參閱輔助技術的安全性考量。 |
自訂功能
前面的受限功能一節描述的功能核准程序,也是您用來要求核准使用自訂功能的程序。 embedded SIM API 是需要自訂功能的 API 範例。 如果您只想要以開發人員模式在本機執行應用程式,則不需要自訂功能。 但是若要將您的應用程式發佈至 Microsoft Store 或在開發人員模式之外執行,您就需要自訂功能。
如果您有 Windows 技術支援專案經理 (TAM),則可以與 TAM 合作要求存取權。 您可以在聯絡 Microsoft TAM 找到更多詳細資料。
若要宣告自訂功能,請修改您的應用程式封裝資訊清單來源檔案 (Package.appxmanifest
)。 新增 xmlns:uap4 XML 命名空間宣告,並在宣告自訂功能時使用 uap4 前置詞。 以下是範例。
<?xml version="1.0" encoding="utf-8"?>
<Package
...
xmlns:uap4="http://schemas.microsoft.com/appx/manifest/uap/windows10/4">
...
<Capabilities>
<uap4:CustomCapability Name="CompanyName.customCapabilityName_PublisherID"/>
</Capabilities>
</Package>
注意
在封裝資訊清單中的 Capabilities 節點底下,所有的 CustomCapability 元素都必須放在任何 Capability 元素之前、任何 DeviceCapability 元素之前。
功能案例 | 功能使用方式 |
---|---|
應用程式 URI 處理常式 | 應用程式可以將本身註冊為指定 URI 的處理常式,如此一來,當使用者開啟指定 URI 的連結時,就會啟動應用程式,而不是開啟瀏覽器。 這需要在本機電腦上註冊,並由目標網頁伺服器進行驗證。 Microsoft.delegatedWebFeatures_8wekyb3d8bbwe 自訂功能可讓應用程式裝載漸進式 Web 應用程式 (PWA),並確認 PWA 是否為應用程式 URI 處理常式,而不參考目標網站進行確認。 |
行動電話通訊 SAR 設定 | Microsoft.cellularSARConfiguration_8wekyb3d8bbwe 自訂功能可讓應用程式執行裝置特定吸收率 (SAR) 屬性的設定。 請參閱 MobileBroadbandSarManager 類別。 |
CoreApplication 啟用 | 宣告 Microsoft.coreAppActivation_8wekyb3d8bbwe 自訂功能的應用程式是以 CoreApplication 為基礎,但需要完全信任去執行,類似於傳統型橋接器應用程式。 |
自訂安裝動作 | 可讓應用程式使用自訂安裝/解除安裝動作。 如果應用程式具有 customInstallActions 受限制的功能 AND ,則應用程式可以使用自定義動作(它是 MSIXVC Xbox Game Pass 應用程式,或具有 Microsoft.classicAppInstaller_8wekyb3d8bbwe 自定義功能)。 |
ESim 管理 | Microsoft.eSIMManagement_8wekyb3d8bbwe 自訂功能可讓應用程式執行裝置內嵌 SIM 卡 (eSIM) 的設定。 請參閱 ESim 類別。 |
舊版安裝行為 | Microsoft.classicAppCompat_8wekyb3d8bbwe 自訂功能可保護應用程式宣告舊版安裝功能的情況;例如,在 Windows 登錄中撰寫自訂 COM ProgId。 |
全機器安裝 | 保護應用程式宣告針對全機器/HKLM 註冊所設定的舊版安裝功能,這需要提高權限。 對於應用程式清單中應用程式宣告 Scope="machine" 的任何內容特別需要。例如,使用 desktop7:ApprovedShellExtension 元素的 MSIX 型應用程式必須設定機器範圍,因此必須宣告 Microsoft.classicAppCompatElevated_8wekyb3d8bbwe 自訂功能。 如需該案例的詳細資訊,請參閱 desktop7:ApprovedShellExtension。 |
隨選網路 | Microsoft.onDemandHotspotControl_8wekyb3d8bbwe 自訂功能 (隨選網路功能) 僅可供應用程式開發人員使用,以在支援連線的硬體裝置與 Windows 電腦之間組建端對端 Wi-Fi 熱點案例。 請參閱 WiFiOnDemandHotspotNetwork 類別。 |
註冊已核准的殼層延伸功能 | 請參閱全機器安裝功能案例。 |
S-mode | 宣告 Microsoft.requiresNonSMode_8wekyb3d8bbwe 自訂功能的應用程式將無法在 S 模式的 Windows 裝置上執行。 |
啟動應用程式 | 應用程式可以設定為在使用者登入時自動啟動。 一般而言,使用者可以為每個應用程式啟用/停用該行為。 Microsoft.nonUserConfigurableStartupTasks_8wekyb3d8bbwe 自訂功能會設定應用程式,讓使用者無法啟用/停用其啟動行為。 |
Windows Core 1 | 宣告 Microsoft.deployFullTrustOnHost_8wekyb3d8bbwe 自訂功能的應用程式完全受信任,以在 Windows 核心裝置上使用原生 WIN32 API。 |
Windows Core 2 | 宣告 Microsoft.notSupportedInCoreV1_8wekyb3d8bbwe 自訂功能的傳統型橋接器應用程式將無法在 Windows 核心裝置上執行。 |
Windows Hello 隨附裝置架構 | 自 Windows 10 版本 2004 (10.0; Build 19041) 開始,與 Microsoft.secondaryAuthenticationFactorForLogon_8wekyb3d8bbwe 自訂功能相關的功能已被取代,並且我們不再向開發人員帳戶授予此功能。 宣告這項功能的應用程式可以向隨附裝置架構註冊,以啟用 Windows 解除鎖定與應用程式相關聯的隨附裝置。 如需詳細資訊,請參閱 使用 Windows Hello 隨附 (IoT) 裝置進行 Windows解鎖。 |