System.UnauthorizedAccessException Почему - PullRequest
0 голосов
/ 21 апреля 2019

Привет, у меня проблема с разрешением (я думаю).Я пытаюсь загрузить файл из Mega.nz MegaApiClient, и когда он пытается это сделать, появляется эта проблема: «System.UnauthorizedAccessException: доступ к пути» / storage / emulated / 0 / Download 'запрещен. »

поэтому я пробовал разные способы сделать это, например, изменить путь к папке или просто создать новый файл и записать все содержимое в этот новый файл, но ничего не работает.Конечно, у меня есть разрешение, добавленное в AndroidManifest.xml

<uses-permission android:name="android.permission.WRITE_USER_DICTIONARY" />
<usespermissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 var client = new MegaApiClient();
 client.LoginAnonymous();
 Uri fileLink = new Uri(Link);
 INodeInfo node = client.GetNodeFromLink(fileLink);
 client.DownloadFile(node, node.Name); //problem occurs here 
 client.Logout();

Ответы [ 2 ]

0 голосов
/ 21 апреля 2019

Я думаю, что вы пишете во внутреннюю память, а не во внешнюю.

На новом Android вам нужно заставить пользователя принять разрешение.Поэтому в большинстве случаев появляется всплывающее предупреждение с разрешением на запись, местоположением и т. Д.

Также вы можете попробовать это: Поддержка Android Dev Console

0 голосов
/ 21 апреля 2019

Возможно, проблема возникает из-за того, что ваше устройство / эмулятор, на котором вы тестируете свое приложение, имеет API 23 или выше.Это означает, что разрешений манифеста недостаточно, и вам нужно добавить разрешения времени выполнения для запроса записи файлов.

Эта ссылка объяснит это с помощью xamarin и это официальная документация .

Разрешение времени выполнения в основном отображает для пользователя диалоговое окно, которое позволяет ему решить, разрешено ли приложению, например, получать доступ к внутреннему хранилищу устройства.

Ох и эта статья также поможет вам в его реализации.

...