WP7 чтение файла с телефона - PullRequest
       3

WP7 чтение файла с телефона

1 голос
/ 29 сентября 2011

Я создаю приложение на Windows Phone 7 для передачи фотографий по Wi-Fi.

Позволяет пользователю выбирать фотографии (это нормально работает), и я сохраняю пути в переменной, которую можно использовать позже.

Когда я пытаюсь отправить фотографию, в моем потоке появляется ноль, как показано ниже: Точнее говоря, я запускаю следующую передачу фотографий, когда индикатор выполнения изменяется, поэтому потоки не совпадают.

public transferPage()
{
  InitializeComponent();

  // Get smartphone unique ID
  object DeviceUniqueID;
  byte[] DeviceIDbyte = null;
  if (DeviceExtendedProperties.TryGetValue("DeviceUniqueId", out DeviceUniqueID))
      DeviceIDbyte = (byte[])DeviceUniqueID;
   deviceId = Convert.ToBase64String(DeviceIDbyte);
   nbPhotos = photoContainer.photosUri.Count;
   photoContainer.index = 0;
   index = 0;

   transferPhoto();
 }

 private void ProgressBarValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
 {
   Thread.Sleep(3000);
   if (photoContainer.photosUri.Count > 0)
     transferPhoto();
 }

 private void transferPhoto()
 {
    string url = String.Format(photoContainer.urlTransfer, nbPhotos, deviceId);

    HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
    webRequest.Method = "POST";
    webRequest.ContentType = "application/x-www-form-urlencoded";
    webRequest.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), webRequest);
 }

 private void GetRequestStreamCallback(IAsyncResult asynchronousResult)
 {
   HttpWebRequest webRequest = (HttpWebRequest)asynchronousResult.AsyncState;

   // End the stream request operation
   Stream postStream = webRequest.EndGetRequestStream(asynchronousResult);
   var fs = Application.GetResourceStream(new Uri(photoContainer.photosUri[0], UriKind.RelativeOrAbsolute)).Stream;

A - Пустое исключение. Возникает в последней строке. Он никогда не поднимается в первом файле, иногда во втором и всегда третьем. photoContainer.photosUri [0] по-прежнему хороший путь к файлу, который я подтвердил в отладчике.

1 Ответ

0 голосов
/ 25 января 2012

Я в замешательстве. Если вы загружаете картинки, почему вы используете Application.GetResourceStream? Этот метод обращается только к ресурсам, встроенным в XAP приложения. Разве вы не должны использовать MediaLibrary.Pictures для доступа к изображениям на телефоне?

В любом случае Application.GetResourceStream возвращает значение NULL, если ему присвоен неизвестный идентификатор ресурса. Потратьте некоторое время на знакомство с относительным Uris Silverlight, как они связаны с действием по сборке файлов и как правильно их сформулировать. Для встроенного ресурса относительный Uri - это «/assemblyName;component/folderInProject/fileName.fileExtension», а для файла «Build Action = Content» это будет «folerInProject / fileName.fileExtension».

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