دستور زیر را به فایل build.gradle پروژه خود اضافه کنید و اجازه دهید اندروید استودیو کتابخانه را دانلود نماید.
dependencies {
compile 'com.auron:permission-manage:1.1.0'
}
نحوه استفاده
در اکتیویتی ها
کلاسی که می خوایید درخواست سطح دسترسی کنید را به شکل زیر تغییر دهید.
public class MainActivity extends ActivityManagePermission {
//......
}
در فرگمنت ها
فرگمنتی که می خوایید درخواست تایید دسترسی کنید را نیز به شکل زیر تغییر دهید
public class FragmentHome extends FragmentManagePermission {
//....
}
توجه : کلاس های FragmentManagerPermission و ActivityManagerPermission از کلاس های اصلی AppCompat مشتق شده اند. یعنی استفاده از آنها در اجرای نرم افزار شما با اندروید 6 به پایین مشکلی ایجاد نخواهد کرد.
نحوه درخواست دسترسی بصورت تکی
برای هر کدام یک از دسترسی های مورد نظر خود به شکل زیر درخواست می کنیم.(تابع OnCreate یا OnResume)
مثال زیر برای دسترسی به دوربین برنامه می باشد.
askCompactPermission(PermissionUtils.Manifest_CAMERA, new PermissionResult() {
@Override
public void permissionGranted() {
//permission granted
//replace with your action
}
@Override
public void permissionDenied() {
//permission denied
//replace with your action
}
});
نحوه درخواست دسترسی بصورت چندگانه و همزمان
برای درخواست دسترسی گروهی به شکل زیر اقدام می کنیم.
مثال : کد زیر برای درخواست دسترسی دوربین و ذخیره سازی اطلاعات در حافظه گوشی نوشته شده است.
askCompactPermissions(new String[]{PermissionUtils.Manifest_CAMERA, PermissionUtils.Manifest_WRITE_EXTERNAL_STORAGE}, new PermissionResult() {
@Override
public void permissionGranted() {
//permission granted
//replace with your action
}
@Override
public void permissionDenied() {
//permission denied
//replace with your action
}
});
نکته : دسترسی های مورد نظر همانند قبل باید در منیفست برنامه تعریف شده باشد.
کنترل فعال بودن یک دسترسی از قبل
بصورت زیر دسترسی مورد نظر را به تایع isPermissionGranted می فرستیم و بصورت true یا false جواب میگیریم.
boolean isGranted = isPermissionGranted(MainActivity.this,PermissionUtils.Manifest_WRITE_EXTERNAL_STORAGE);