PDA

View Full Version : دسترسی در برنامه (Permission denied)



ghasem110deh
شنبه 11 دی 1395, 19:36 عصر
سلام به همه :-)
دوستان من توی منی فست سطح دسترسی رو دادم :

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

اما باز موقع نمایش عکس از توی گالری گوشی ، توی image view خطای (Permission denied) میداد .... از این کد استفاده کردم :


private static final int REQUEST_EXTERNAL_STORAGE = 1;
.
.
.

verifyStoragePermissions(this);...
private static String[] PERMISSIONS_STORAGE = {Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE };public static void verifyStoragePermissions(Activity activity) {// Check if we have write permission
int permission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE);
if (permission != PackageManager.PERMISSION_GRANTED) {// We don't have permission so prompt the user
ActivityCompat.requestPermissions(activity, PERMISSIONS_STORAGE, REQUEST_EXTERNAL_STORAGE
);
}
}


الان برای بار اول از کاربر اجازه دسترسی میگیره ، اما توی هر اکتیویتی باید ازش استفاده کنم ! راهی نیست که فقط اولین که برنامه اجرا میشه بپرسه (واسه همه اکتیویتی ها و ...)

spiderman200700
یک شنبه 12 دی 1395, 14:42 عصر
سلام.

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

اگه بخوای یه بار کد رو بنویسی و توی همه اکنیویتی ها ازش استفاده کنی، میتونی یه BaseActivity تعریف کنی و این کد رو توش بنویسی و همه اکتیویتی ها رو از اون مشتق کنی.