Press ESC to close

Xamarin Forms Ayarları Açmak

Merhaba arkadaşlar, bu yazımızda Xamarin.Forms ile nasıl ayarları açarız bundan bahsedeceğiz. Bir çok uygulamada cihaz donanımından veriler alıyoruz ya da galerisinden. Bu verileri alabilmemiz için kullanıcının izin vermesi gerekiyor. Kullanıcı bu izni o an için izin vermezse bir daha karşısına tekrar aynı izin ekranını çıkartamıyoruz. Tabi bu iOS için. Android’de ise kullanıcıya tekrar sorabiliyoruz ama sorarken kenarından bir daha asla sorma seçeneği çıkartıyor. Eğer kullanıcı buna tıklarsa Android için de ayarlara gidip izni açması gerekiyor.

Mobil uygulama geliştiricileri olarak kullanıcıya kolaylık sağlamalıyız. İzin gerektiren bir işlemde, kullanıcı izin vermemişse bir uyarı çıkartmalıyız. Bu uyarıda kullanıcıyı bilgilendirip sonrasında ayarlara gitmek isteyip istemediğini sormalıyız. Kullanıcı isterse direkt olarak uygulamanın ayarlarına atmalıyız. Bu işlemi eskiden Dependency Service ile yapabiliyorduk. Dependency Service nedir ve nasıl kullanılır hakkında bilgi almak isterseniz buradan ulaşabilirsiniz.

Bu yapacağımız örnekte kullanıcını konumunu almak istiyoruz ve eğer kullanıcı izin vermemişse nasıl ayarlara göndereceğimizden bahseceğiz. Konum izni nasıl alınır bunun hakkında detaylı yazıya buradan ulaşabilirsiniz. Xamarin.Essentials ile artık bu çok kolay hale geldi. ShowSettingsUI fonksiyonunu kullanarak uygulamanın ayarlar bölümünü açabilirsiniz. Xamarin.Essentials hakkında daha fazla bilgiye buradan ulaşabilirsiniz.

async void GetLocation()
        {
            try
            {
                var location = await Geolocation.GetLastKnownLocationAsync();
                if (location != null)
                {
                    Latitude = location.Latitude.ToString();
                    Longitude = location.Longitude.ToString();
                }
            }
            catch (FeatureNotSupportedException ex)
            {
                await App.Current.MainPage.DisplayAlert(AppResources.warning, AppResources.locationFeatureNotSupportedError, AppResources.ok);
                ResetLocation();
            }
            catch (FeatureNotEnabledException ex)
            {
                await App.Current.MainPage.DisplayAlert(AppResources.warning, AppResources.locationFeatureNotEnabledError, AppResources.ok);
                ResetLocation();
            }
            catch (PermissionException ex)
            {
                var result = await App.Current.MainPage.DisplayAlert(AppResources.warning, AppResources.locationPermissionError, AppResources.ok, AppResources.cancel);
                if (result)
                    AppInfo.ShowSettingsUI();
                ResetLocation();
            }
            catch (Exception ex)
            {
                await App.Current.MainPage.DisplayAlert(AppResources.warning, AppResources.generalError, AppResources.ok);
                ResetLocation();
            }
        }

Uygulamanın ekran çıktısı aşağıdaki gibidir.

Sorularınız olursa mail veya yorum atarak ulaşabilirsiniz. İyi çalışmalar.

Bir yanıt yazın

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