GeoCoordinateWatcher.Start Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Инициирует получение данных от текущего поставщика расположения. Этот метод делает возможными события PositionChanged и разрешает доступ к свойству Position.
Перегрузки
Start() |
Инициирует получение данных от текущего поставщика расположения. Этот метод делает возможными события PositionChanged и разрешает доступ к свойству Position. |
Start(Boolean) |
Инициирует получение данных от текущего поставщика расположения. Этот метод делает возможными события PositionChanged и разрешает доступ к свойству Position. |
Start()
Инициирует получение данных от текущего поставщика расположения. Этот метод делает возможными события PositionChanged и разрешает доступ к свойству Position.
public:
virtual void Start();
public void Start ();
abstract member Start : unit -> unit
override this.Start : unit -> unit
Public Sub Start ()
Реализации
Примеры
Следующая программа обрабатывает первое обновление расположения, которое происходит после Start вызова метода .
using System;
using System.Device.Location;
namespace GetLocationDataUpdateOnce
{
class Program
{
static void Main(string[] args)
{
CLocation myLocation = new CLocation();
myLocation.GetLocationDataEvent();
Console.WriteLine("Enter any key to quit.");
Console.ReadLine();
}
class CLocation
{
GeoCoordinateWatcher watcher;
public void GetLocationDataEvent()
{
this.watcher = new GeoCoordinateWatcher();
this.watcher.PositionChanged += new EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>>(watcher_PositionChanged);
this.watcher.Start();
}
void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
{
PrintPosition(e.Position.Location.Latitude, e.Position.Location.Longitude);
// Stop receiving updates after the first one.
this.watcher.Stop();
}
void PrintPosition(double Latitude, double Longitude)
{
Console.WriteLine("Latitude: {0}, Longitude {1}", Latitude, Longitude);
}
}
}
}
Imports System.Device.Location
Module GetLocationEvent
Public Class CLocation
Private WithEvents watcher As GeoCoordinateWatcher
Public Sub GetLocationDataEvent()
watcher = New System.Device.Location.GeoCoordinateWatcher()
AddHandler watcher.PositionChanged, AddressOf watcher_PositionChanged
watcher.Start()
End Sub
Private Sub watcher_PositionChanged(ByVal sender As Object, ByVal e As GeoPositionChangedEventArgs(Of GeoCoordinate))
PrintPosition(e.Position.Location.Latitude, e.Position.Location.Longitude)
' Stop receiving updates after the first one.
watcher.Stop()
End Sub
Private Sub PrintPosition(ByVal Latitude As Double, ByVal Longitude As Double)
Console.WriteLine("Latitude: {0}, Longitude {1}", Latitude, Longitude)
End Sub
End Class
Public Sub Main()
Dim myLocation As New CLocation()
myLocation.GetLocationDataEvent()
Console.WriteLine("Enter any key to quit.")
Console.ReadLine()
End Sub
End Module
Комментарии
Вызов этого метода инициирует получение данных у текущего поставщика расположения. Текущий поставщик расположения выбирается на основе таких факторов, как возраст и точность данных от всех поставщиков, точность, запрашиваемая приложением или приложениями, а также влияние на энергопотребление и производительность, связанные с поставщиком расположения. Текущий поставщик местоположения может меняться со временем, например, когда устройство GPS теряет свой спутниковый сигнал в помещении, а поставщик триангуляции Wi-Fi становится наиболее точным поставщиком на компьютере.
Если текущий поставщик приоритетных расположений не имеет данных при вызове Start метода, он начнет получать данные. Если разрешения были предоставлены клиенту, когда данные становятся доступными, доступ к данным можно получить синхронно, и они будут доставлены асинхронно, если события обрабатываются.
Если платформа датчика и расположения Windows 7 отключена при Start вызове метода , Start немедленно возвращает , PositionChanged события не будут вызваны, а расположение, возвращаемое свойством Location , Position будет содержать Unknown.
Если у текущего поставщика приоритетных расположений есть данные, они будут доступны синхронно немедленно и будут доставлены асинхронно при обработке событий.
Если у вызывающего приложения нет разрешений на доступ к данным от поставщика расположения, пользователю будет предложено предоставить или отклонить разрешение. Диалоговое окно будет немодерным.
Применяется к
Start(Boolean)
Инициирует получение данных от текущего поставщика расположения. Этот метод делает возможными события PositionChanged и разрешает доступ к свойству Position.
public:
virtual void Start(bool suppressPermissionPrompt);
public void Start (bool suppressPermissionPrompt);
abstract member Start : bool -> unit
override this.Start : bool -> unit
Public Sub Start (suppressPermissionPrompt As Boolean)
Параметры
- suppressPermissionPrompt
- Boolean
Значение true
для подавления диалогового окна запроса разрешений; значение false
для отображения диалогового окна, если разрешения еще не были предоставлены.