Не удается записать потоковые данные на SD-карту My Galaxy S2 с помощью MonoDroid через Visual Studio - PullRequest
0 голосов
/ 21 марта 2012

У меня много проблем при работе с потоками с помощью монодроида.Что я пытаюсь сделать, это просто загрузить файл с помощью URL-адреса и сохранить его в папку / sdcard моего телефона, но у меня возникли проблемы.Я получаю Доступ к пути '/ mnt / sdcard' запрещен.

Код: -

Filestream strlocal;
var fileName = Android.OS.Environment.ExternalStorageDirectory;
string path = Convert.ToString(fileName);
strLocal = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.Write);
  • Когда я отлаживаю приложение и пытаюсьчтобы запустить его на моем устройстве, ошибка отладки указывает на эту строку кода.

В Visual Studio я создал файл манифеста, используя диалоговое окно в свойствах, в которых я дал разрешение на запись, то есть: -

uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE

Кроме того, я попробовал другойподход, чтобы написать это разрешение на главной странице деятельности, а именно: -

[Activity(Label = "MonoAndroidApplication2", MainLauncher = true, 
Permission = "android.permission.WRITE_EXTERNAL_STORAGE")

Но все равно получаю ту же ошибку отказа.Также, когда я создаю файл манифеста в Visual Studio, я получаю странные сообщения, такие как: -

Message 5   Could not find schema information for the element 'uses-permission'.    

Message 1   Could not find schema information for the element 'manifest'.

Message 2   Could not find schema information for the attribute 'package'.

Что означают эти сообщения?Пожалуйста, помогите мне в этой проблеме.

Я использую последнюю версию Monodroid (купил неделю назад)

1 Ответ

1 голос
/ 21 марта 2012

Проблема в том, что вы пытаетесь открыть FileStream, используя путь к папке, а не указывать имя файла в этой папке. Например:

string path = Path.Combine(Android.OS.Environment.ExternalStorageDirectory.Path, "MyFile.txt");

using (var stream = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.Write))
{
    // write stuff
}

Это создаст файл с именем MyFile.txt во внешней папке хранения.

...