Saturday , October 19 2019
Home / Android / Android 6 (Marshmallow) – Runtime Permissions

Android 6 (Marshmallow) – Runtime Permissions

Android 6 (Marshmallow) ile gelen bir yeni özellik de Runtime Permission konusudur. Eskiden uygulama içindeki izinler uygulamayı telefona yüklerken toplu halde soruluyordu. Böyle olunca uygulamadaki izinleri neden verdiğimizi, hangi bilgilerimize erişeceğini bilmiyorduk. Android 6 ile birlikte bu sorun kısmen çözülmüş oldu. Çünkü artık uygulamada arka tarafta bir şey yapacaksa, örneğin fotoğraflarımıza erişecekse ya da rehberimize erişecekse bizden uygulama açılırken değil de o an için izin alması gerekiyor. Böylece alakasız bir yerde rehberimize ulşamasını veya telefon bilgilerini almasını engellemiş oluyoruz.

Android 6 ile gelen Run TimePermission listesinin güncel hali aşağıdaki tabloda bulunmaktadır.

ekran-resmi-2016-10-08-13-02-32

Şimdi Runtime permission kullanarak Albümden fotoğraf seçme ve Kameradan çekilen fotoğrafı imageview’imize ekleyen ufak bir proje yapalım ve konuyu real world bir örnekle açıklayalım.

Öncelikle bir test projesi açalım.

Projemizi oluşturduktan sonra AndroidManifest.xml dosyasına

iznini eklememiz gerekmektedir.

Activityimizn layout dosyasını ben şu şekilde yaptım, siz de uygulama akışına göre kendiniz yeni bir tasarım oluşturabilirsiniz.

activity_main.xml

 

Activity içerisinde kullanıcı take photo veya pick photo view’ine tıkladığında kamerayı ya da galeriyi açmamız gerekiyor. Fakat kamerayı ya da galeriyi açmadan önce izin kontrolünü yapmamız gerekmektedir. Bu kontrolü ise şu şekilde yapıyoruz.

isReadExternalStoragePermissionGranted fonsiyonu bize izin değerini dönüyor. Şöyle ki; eğer kullanıcı daha önceden izin verdiyse izin ekranı çıkarmadan direkt olarak true dönüyor, eğer kullanıcı ilk defa bu ekranı görecekse izin ekranı çıkıyor kullanıcı buna evet derse true hayır derse false dönüyor. Daha sonra biz de bize gelen boolean değerine göre işlemimize devam ediyoruz.

Diğer bütün izinleri;

kodundaki READ_EXTERNAL_STORAGE değerini değiştirerek kullanabiliriz.

Main Activity kodumuzun son hali ise aşağıdaki gibidir. Ben viewleri activity içerisinde bind ederken kolaylık olması açısından Butterknife kullanıyorum. Butterknife eklemek istemezseniz. Oncreate içinde viewlerinizi bind edebilirsiniz. Butterknife kullanımı yazısı için bu dokümana göz atabilirsiniz.

MainActivity

 

Uygulama sonunda ekran görüntülerimiz ise şu şekildedir.

whatsapp-image-2016-10-08-at-16-41-30 whatsapp-image-2016-10-08-at-16-41-30-1

 

Bir sonraki yazımızda görüşünceye kadar sağlıcakla kalın :)

 

About Burak

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Download Free Premium Joomla Templates • FREE High-quality Joomla! Designs BIGtheme.net