Android Marshmallow çıkmadan önce kullanıcı Play Store’dan uygulama indirirken izinleri görür ve kabul etmeden indiremezdi. Kabul ettiği izinleri iptal edemezdi. Marshmallow ile kullanıcı istediği izinleri uygulamayı indirdikten sonra iptal edebilir hale geldi. İzinlerde artık indirirken değil uygulama çalıştıktan sonra istenmeye başlandı.
Bu yazıda da TedPermission kütüphanesi ile en basit şekilde cihazdan izin almayı göstereceğim.
TedPermission Kütüphanesini Projeye Eklemek
build.gradle dosyasına giderek aşağıdaki kodu dependencies içerisine ekleyin.
1 |
implementation 'gun0912.ted:tedpermission:2.2.2' |
AndroidManifest.xml İzin Eklemek
İstenecek izinleri öncelikle AndroidManifest.xml dosyasına aşağıdaki gibi eklemelisiniz. Bu izinleri çoğaltabilirsiniz. Örnek olarak kamera kullanma izni ekledim.
TedPermission ile İzin Almak
1 2 |
import com.gun0912.tedpermission.PermissionListener; import com.gun0912.tedpermission.TedPermission; |
Öncelikle yukarıdaki kodu import edin (veya aşağıdaki kodu kopyalayıp yapıştırdığınız zaman kırmızı ile işaretlenmiş kelimeye fareyi götürüp İmport Class basınız).
Daha sonra aşağıdaki gibi bir fonksiyon oluşturun. Ben izinKontrol() isminde bir fonksiyon oluşturdum. Kodda görüldüğü gibi izin verildiği ve verilmediği zaman çalışacak kodlar var. İstediğiniz kodları ekleyebilirsiniz. Örnek olarak kullanıcıya Toast mesajı göndermesini istedim. Mesela izin vermediyse uygulamadaki işlemlere erişimini kısıtlayabilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
public void izinKontrol() { PermissionListener permissionListener = new PermissionListener() { @Override public void onPermissionGranted() { //izin verildigi zaman calisacak kodlar Toast.makeText(MainActivity.this,"Kamera izni verildi", Toast.LENGTH_SHORT).show(); } @Override public void onPermissionDenied(List<String> deniedPermissions) { //izin verilmedigi zaman calisacak kodlar Toast.makeText(MainActivity.this, "Kamera izni verilmedi", Toast.LENGTH_SHORT).show(); } }; TedPermission.with(MainActivity.this) //kod hangi activity de ise onu yazin .setPermissionListener(permissionListener) .setPermissions(Manifest.permission.CAMERA) //ornek olarak kamera sectim. degistirilebilir ve daha fazla izin eklenebilir. .check(); } |
AndroidManifest.xml eklediğimiz izinleri yukarıda .setPermissions(Manifest.permission.CAMERA) veya .setPermissions(Manifest.permission.READ_SMS) gibi eklemelisiniz.
Son olarak bu fonksiyonu herhangi bir butona, onCreate içine veya istediğiniz herhangi bir yerde çağırıp izin isteme işlemini gerçekleştirebilirsiniz.