Даже при запущенном GeoCoordinateWatcher
вы получите NoData
, если датчик отключен. Вместо этого попробуйте использовать TryStart:
GeoCoordinateWatcher g = new GeoCoordinateWatcher();
MessageBox.Show(g.TryStart(false,TimeSpan.FromSeconds(30)).ToString());
Если возвращается False
, это означает, что датчик отключен. Если он возвращает True
, он включен. Установите соответствующий период ожидания (в приведенном выше фрагменте кода я использую 30 секунд) и делегируйте этот процесс вторичному потоку, чтобы пользовательский интерфейс не зависал.