System.UnauthorizedAccessException 在后台任务中

System.UnauthorizedAccessException in Background Task

问题: 当我从后台任务调用 AudioDeviceModulesManager(id) 时它抛出 System.UnauthorizedAccessException

当我 google 问题时,大多数点击都是针对试图访问程序无法访问的特定文件的人。我知道抽象地我在做同样的事情,但我不知道赋予后台任务什么权利,或者我将如何做,以允许它枚举 AudioDeviceModules。

链接:

When I call AudioDeviceModulesManager(id) from a background task it throws System.UnauthorizedAccessException

根据Configure and query audio device modules

In order to use the audio device module APIs shown in this article, you must specify the restricted audioDeviceConfiguration capability in your app package manifest.

因此您需要在应用程序包清单中指定受限功能 audioDeviceConfiguration,如下所示:

<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
...
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
IgnorableNamespaces="uap mp rescap">

<Capabilities>
  <Capability Name="internetClient" />
  <rescap:Capability Name="audioDeviceConfiguration"/>       
</Capabilities>

请注意,只有 Microsoft 合作伙伴和与设备供应商合作的人员才能请求访问此功能以进行商店提交。这是因为 AudioDeviceModulesManager 允许应用程序访问给定系统上的所有音频效果。潜在地,可以将音频效果设置为对设备上的音频性能产生负面影响。

更多详情请参考App capability declarations