نماد سایت تیک۴

اجازه دسترسی در حال اجرا با استفاده از Dexter

اجازه دسترسی

اجازه دسترسی ها بعد از اینکه گوگل اندروید مارشمالو را ارائه کرد، بصورت در حال اجرا هم باید گرفته شود.

کاربر این اجازه را دارد که زمان اجرای کد هم بتواند تایید یا رد بکند.

نوشتن کد اجازه دسترسی به کاربر نیازمند کدنویسی زیادی و خسته کننده ای برای برنامه نویس دارد.

در این مقاله سعی بر ساده سازی این کار با استفاده از کتابخانه Dexter داریم

۱ – کتابخانه dexter

ابتدا کد زیر را در فایل build.gradle قرار دهید

dependencies {
    // Dexter runtime permissions
    implementation 'com.karumi:dexter:4.2.0'
}

۱ – ۱ ارسال درخواست تکی

برای ارسال یک درخواست تکی باید از withPermission() استفاده کنید.

 onPermissionGranted()  وقتی که دسترسی داده شد می آید.

onPermissionDenied() برای وقتی که اجازه رد شد استفاده می شود.

مثالی از نمونه کر برای درخواست دوربین :

Dexter.withActivity(this)
                .withPermission(Manifest.permission.CAMERA)
                .withListener(new PermissionListener() {
                    @Override
                    public void onPermissionGranted(PermissionGrantedResponse response) {
                        // permission is granted, open the camera
                    }
 
                    @Override
                    public void onPermissionDenied(PermissionDeniedResponse response) {
                        // check for permanent denial of permission
                        if (response.isPermanentlyDenied()) {
                            // navigate user to app settings
                        }
                    }
 
                    @Override
                    public void onPermissionRationaleShouldBeShown(PermissionRequest permission, PermissionToken token) {
                        token.continuePermissionRequest();
                    }
                }).check();

همچنین می توانید با قرار دادن PermissionRequestErrorListener خطاهای موجود را مدیریت کنید

Dexter.withActivity(this)
                .withPermissions(
                        Manifest.permission.READ_EXTERNAL_STORAGE,
                        Manifest.permission.ACCESS_FINE_LOCATION)
                .withListener(listener)
                .withErrorListener(new PermissionRequestErrorListener() {
                    @Override
                    public void onError(DexterError error) {
                        Toast.makeText(getApplicationContext(), "Error occurred! " + error.toString(), Toast.LENGTH_SHORT).show();
                    }
                })
                .check();

می توانید مطالب بیشتری در زمینه طراحی و برنامه نویسی اپلیکیشن را اینجا ببینید

می توانید مطالب بیشتری را اینجا ببینید

 

خروج از نسخه موبایل