[ WP7 ] How to detect that phone is connected to zune

Как определить, что телефон подключён к Zune

В WindowsPhone 7 есть одна неприятная особенность (хотя, на самом деле и не одна), когда телефон подключён к компьютеру и запущен Zune, то мы не можем запустить PhotoChooserTask или CameraTask, и e.TaskResult == TaskResult.Cancel. При этом нет никакого чёткого метода, чтобы определить, что причина в Zune. В интернете есть пара решений, одно из них, предлагает подтягивать целую либу, где такая возможность есть, но нафига это делать, если мы можем сделать это сами, а способ всего один:

using Microsoft.Phone.Net.NetworkInformation;
//...
        private void ImageFromGallery()  // картинка из галереи
        {
                PhotoChooserTask pct = new PhotoChooserTask();
                pct.Completed += new EventHandler(pct_Completed);
                pct.Show();
        }
//...

        private void pct_Completed(object sender, PhotoResult e)
        {
            if (e.TaskResult == TaskResult.OK)
            {
                // smth
            }
            else
            {
                if (e.TaskResult == TaskResult.Cancel && NetworkInterface.NetworkInterfaceType == NetworkInterfaceType.Ethernet)
                    MessageBox.Show("Please, Disconnect From Computer");
            }
        }

Проблема может возникнуть, если компьютер отключён от интернета в принципе, так же, если он подключён по специфическому соединению, вроде: NetworkInterfaceType.FastEthernetFx , но вы вполне можете добавить и данные условия, а полное отсутствие обрабатывать через

if (e.TaskResult)
{
     // smth
}
One Comment

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *