Press ESC to close

Xamarin Forms Konum Kontrol Etmek

Güncel yazıya buradan ulaşabilirsiniz.

Mobil uygulamalarınızda konum servislerini kullanmak isteyebilirsiniz. Bunun için de ilk önce GPS’in açık olması gerekmekte. Kullanıcı bunu unutabilir veya biz herhangi bir yerde konum servislerinden bilgi almak isteyebiliriz ama kullanıcı bunu bilmeyebilir. Bu ve benzeri sebeplerden dolayı bu yazımda, mobil uygulamalarınızda nasıl konum servislerinin açık olup olmadığını kontrol etmeyi anlatacağım.

İlk önce bir Nuget Package yüklememiz gerekmekte. Bunun için projemizin üzerine gelip sağa tıklayıp Manage Nuget Package dememiz gerekmekte. Sonrasında browse kısmında Xam.Plugin.Geolocator paketini tüm projeye dahil etmemiz gerekiyor. Buraya kadar olan kısım basitti.

Sonrasında hangi sayfada kullanmak istiyorsak aşağıda ki kodları projemizde dahil etmemiz gerekmekte. Aşağıda ki senaryoda kullanıcının lokasyonunu, konumunu almam lazım. Eğer ki konum servislerini direk olarak almaya çalışırsam eğer açık değilse sadece bekleyecektir uygulama. Bunun için kontrol etmem gerekiyor. İlkönce bir CrossGeolocator nesnesi almamız gerekmekte. Ben bu değişkene locator dedim. Ardından işlemlerimi yapmadan önce kontrol etmem gerekiyor. Bunuda isGeolocationEnabled ve isGeolocationAvailable metodlarıyla kontrol edebiliyoruz.

isGeolocationAvailable ile konumun müsaitlik durumunu kontrol ediyoruz. Eğer başka bir uygulama tarafından kullanıyorsa konum servisleri bunu false olarak döndürecektir. isGeolocationEnabled fonksiyonu ile ise konum servislerinin açık olup olmadığını kontrol ediyoruz. Sonrasıda zaten konum bilgilerini almaya kalıyor. Bunu da daha önce ki yazılarımda bulabilirsiniz.

private async void GetLocation()
        {
            
            // Bir locator nesnesi oluşturup bunun arzulanan doğruluğunu saptamaya çalışıyorum
            var locator = CrossGeolocator.Current;
            if (locator.IsGeolocationEnabled && locator.IsGeolocationAvailable)
            {
                locator.DesiredAccuracy = 50;
                var position = await locator.GetPositionAsync();
            }
            
            
        }

Sorularınız olursa mail veya yorum atarak ulaşabilirsiniz.

oomersezer@gmail.com

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir