Alttaki kodlar herhangi bir Activity içerisinde yazılmalıdır
// thisActivity içerisinde olduğumuz varsayılmıştırif (ContextCompat.checkSelfPermission(this,Manifest.permission.READ_CONTACTS)!=PackageManager.PERMISSION_GRANTED) {// İzin alınmamışsa// Açıklama yapılmak isteniyorsa yapalımif (ActivityCompat.shouldShowRequestPermissionRationale(this,Manifest.permission.READ_CONTACTS)) {// Kullanıcı cevabını beklerken UI thread'i bloklamamak için// asenkron olarak işlemleri sürdürmeliyiz// Ardından da izin istenmelidir } else {// Açıklmaya gerek yoksa direkt izin istemeActivityCompat.requestPermissions(this,newString[]{Manifest.permission.READ_CONTACTS}, IZIN_KODU);// IZIN_KODU değişkeninin herhangi bir değer ile tanımlanması gerekir// Bir sonraki aşamada kullanılacaktır }} else {// İzin zaten verilmiş}
🤝 İsteği Kontrol Etme
İstenilen izni aynı class içerisinde onRequestPermissionResult metodunu override ederek yönetiriz
requestCode değişkeni IZIN_KODU'na eşit olması durumunda izin kontrolü yapılır
@OverridepublicvoidonRequestPermissionsResult(int requestCode, @NonNullString[] permissions, @NonNullint[] grantResults) {if (requestCode == IZIN_KODU) {// Eğer sonucun uzunluğu 0 ise kullanıcı başka bir yere basarak iptal// etmiştir.if (grantResults.length>0&& grantResults[0] ==PackageManager.PERMISSION_GRANTED ) {// İzin alındı 🚀startTelemetryService(); } } else {// İzin alınamadı 😔 }}