Android Settings Panel

En son güncellendiği tarih: 6 gün önce

Kullanıcıların uygulamalarındaki bazı özelliklerini kullanabilmesi için telefonlarında internet, NFC veya wifi gibi bazı özelliklerin açık olması beklenir. Geleneksel yöntemde kullanıcıların ilgili özellikleri açık değilse kullanıcıya bir mesaj verilir ve kullanıcının ayarlar ekranından ya da ekranın üst kısmından kaydırarak hızlı ayarlardan bu özelikleri açması beklenir.


Hatta bazı uygulamalarda internet bağlantısı olmadığında, bilgi mesajının ardından uygulama kapatılır. Kullanıcı, hızlı ayarlar bölümüne bakarken başka uygulamadaki bildirimleri görebilir ve başka uygulamalara geçiş yapabilir. Bu gibi sebeplerden ötürü kullanıcının ilgisini dağıtmamak amacıyla Android Q'da settings panel özelliği getirilirdi. Kullanıcı uygulama dışına çıkmadan aşağıdaki gibi ayarlarını açabilir.




Bu özelliğin kullanılabilmesi için cihazın Pie 9 (API 28) ve üzerinde olması gerekiyor. Kullanıcının bir butona tıklayıp bir internet sitesine yönleneceği bir uygulama yapalım. İlk olarak AndroidManifest.xml içerisine internet ve network durumunu kontrol etmek için gerekli olan izinleri ekleyelim.


Ardından Webview ve hemen altında bir buton olacak şekilde layoutumuzu oluşturuyoruz.



Kullanıcı butona tıkladıktan sonra aşağıdaki checkInternetSettings fonksiyonu çağırıyoruz.


Öncelikle kullanıcının internete bağlı olup olmadığı isNetworkAvailable fonksiyonu ile kontrol ediyoruz. Bu fonksiyonun tamamını projenin github linkinde bulabilirsiniz. Konumuz olmadığı için burada değinmeyeceğim.


Kullanıcı internete bağlı ise webview üzerinden ilgili siteyi yüklüyoruz. Kullanıcı internete bağlı değilse telefonunun android versiyonu Android 9 ve üzerinde ise settings panel özelliğini kullanabiliriz. Settings paneli açabilmek için yukarıdaki gibi bir intent oluşturmalı ve parametre olarak da hangi settings'in açılacağı belirtilmeli.


Bu aşamada 4 adet settings paneli bulunuyor:


ACTION_INTERNET_CONNECTIVITY : İnternet bağlantısının açabileceği tüm ayarları içerir.

ACTION_NFC : NFC ayarını içerir.

ACTION_VOLUME : Tüm ses ayarlarını içerir.

ACTION_WIFI : Wifi'yi kontrol edecek ayarı içerir.


İlgili paneli seçtikten sonra startActivityForResult methodu ile intent'i çalıştırıyoruz. Ardından settings paneli açılıyor.


Kullanıcı işlemi tamamladıktan sonra onActivityResult methodu çağrılıyor ve bu method ile tekrar internet bağlantısını kontrol edip eğer kullanıcı panel üzerinden internet bağlantısını açmış ise ilgili sayfayı webview üzerinden yüklüyoruz.



Böylelikle kullanıcıyı uygulamanın dışına çıkarmadan gerekli ayarların panel ile değiştirilmesini sağlamış olduk.


Github repository: https://github.com/onurkaragunlu/SettingsPanelExample


#androidq #androidsettingspanel

Komünite

Platform

Mobiler.dev Anasayfa
  • Twitter
  • Instagram
  • development_düzenlendi_düzenlendi
  • Youtube
  • slack-icon-black_edited_edited_edited
  • Gri LinkedIn Simge
JetBrains Hakkında Detaylı Bilgi Alın

© 2020 by mobiler.dev

mobilerdevLogo.jpg
Yazarlık Başvurusu Hakkında Bilgi Alın, Başvuru Yapın.
Topluluk Yazarlarını Tanıyın