GeoCoordinateWatcher.Start Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Memulai akuisisi data dari penyedia lokasi saat ini. Metode ini memungkinkan PositionChanged peristiwa dan memungkinkan akses ke Position properti .
Overload
| Start() |
Memulai akuisisi data dari penyedia lokasi saat ini. Metode ini memungkinkan PositionChanged peristiwa dan memungkinkan akses ke Position properti . |
| Start(Boolean) |
Memulai akuisisi data dari penyedia lokasi saat ini. Metode ini memungkinkan PositionChanged peristiwa dan memungkinkan akses ke Position properti . |
Start()
Memulai akuisisi data dari penyedia lokasi saat ini. Metode ini memungkinkan PositionChanged peristiwa dan memungkinkan akses ke Position properti .
public:
virtual void Start();
public void Start ();
abstract member Start : unit -> unit
override this.Start : unit -> unit
Public Sub Start ()
Penerapan
Contoh
Program berikut menangani pembaruan lokasi pertama yang terjadi setelah Start dipanggil.
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
Keterangan
Memanggil metode ini akan memulai akuisisi data dari penyedia lokasi saat ini. Penyedia lokasi saat ini dipilih berdasarkan faktor-faktor seperti usia dan akurasi data dari semua penyedia, akurasi yang diminta oleh aplikasi atau aplikasi, dan konsumsi daya dan dampak performa yang terkait dengan penyedia lokasi. Penyedia lokasi saat ini mungkin berubah dari waktu ke waktu, misalnya, ketika perangkat GPS kehilangan sinyal satelitnya di dalam ruangan dan penyedia triangulasi Wi-Fi menjadi penyedia yang paling akurat di komputer.
Jika penyedia lokasi yang diprioritaskan saat ini tidak memiliki data ketika Start metode dipanggil, penyedia lokasi tersebut akan mulai memperoleh data. Jika izin telah diberikan kepada klien saat data tersedia, data dapat diakses secara sinkron, dan akan dikirimkan secara asinkron jika peristiwa sedang ditangani.
Jika platform Sensor dan Lokasi Windows 7 dinonaktifkan saat Start dipanggil, Start akan segera kembali, PositionChanged peristiwa tidak akan dinaikkan, dan lokasi yang dikembalikan oleh Location properti Position akan berisi Unknown.
Jika penyedia lokasi yang diprioritaskan saat ini memang memiliki data, itu akan segera tersedia secara sinkron, dan akan dikirimkan secara asinkron jika peristiwa sedang ditangani.
Jika aplikasi panggilan tidak memiliki izin untuk mengakses data dari penyedia lokasi, pengguna akan diminta dengan kotak dialog untuk memberikan atau menolak izin. Kotak dialog akan menjadi modeless.
Berlaku untuk
Start(Boolean)
Memulai akuisisi data dari penyedia lokasi saat ini. Metode ini memungkinkan PositionChanged peristiwa dan memungkinkan akses ke Position properti .
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)
Parameter
- suppressPermissionPrompt
- Boolean
true untuk menekan kotak dialog izin; false untuk memperlihatkan kotak dialog izin secara opsional jika izin belum diberikan.