Как исправить ошибку AccessDenied при доступе к KnownFolders.MediaServerDevices? - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь создать простой музыкальный проигрыватель для ПК / Xbox One, который использует DLNA в качестве источников мультимедиа, но у меня постоянно появляется ошибка AccessDenied.

Я импортировал Windows.Storage, и я 'Мы включили возможность музыкальной библиотеки в манифесте приложения.Попытка присвоить / access KnownFolders.MediaServerDevices выдает ошибку AccessDenied.Начиная с этого документа, для использования MediaServerDevices мне может понадобиться только любая из зависимостей библиотеки музыки / изображений / видео, но включение любой комбинации возможностей, похоже, не работает.

public MainPage()
    {
        this.InitializeComponent();

        StorageFolder MediaServerDevices;
        MediaServerDevices = KnownFolders.MediaServerDevices;
    }

Это должно назначить StorageFolder на MediaServerDevices, вместо этого он выдает:

System.UnauthorizedAccessException
  HResult=0x80070005
  Message=Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

Как я могу исправить эту ошибку?

1 Ответ

0 голосов
/ 12 июля 2019
Папка

MediaServiceDevice собирает файлы указанного типа на текущем устройстве, а не только музыкальную библиотеку или другие мультимедийные папки. Для мобильных телефонов это работает. Но для ПК это предполагает доступ к другим папкам. Так что недостаточно просто получить разрешения музыкальной библиотеки.

Если вы хотите, чтобы он работал на ПК, вам нужно получить более широкий диапазон прав доступа к файлам.

Открыть Package.appxmanifest с кодом, добавить пространство имен и новый Capability:

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

  <Capabilities>
    ...
    <uap:Capability Name="musicLibrary"/>
    <rescap:Capability Name="broadFileSystemAccess"/>
  </Capabilities>

</Package>

broadFileSystemAccess является ключом для доступа к MediaServiceDevice.

Это ограниченная возможность. Доступ настраивается в Настройки> Приложение . Найдите свое приложение и откройте дополнительные параметры .

Открыть File System.

В настоящее время вы можете получить доступ к папке MediaServiceDevice на вашем ПК.

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...