ران تایم پرمیشن در اندروید6
روال کار در ران تایم پرمیشن در اندورید 6 رو کسی میتونه برام واضح توضیح بده؟
نقش onRequestPermissionsResult چیه دقیقا ؟ چرا لاگ میگیرم اصن این متد اجرا نمیشه ؟چ موقع اجرا میشه ؟ میخوام کاربر اگر DENYزد دوباره درخواست پرمیشن واسش بیاد..کلا کسی میتونه کامل توضیح بده ؟متشکرم و خسته نباشید .
متشکرم .لینک خوبی بود از قبل دیده بودم .اما سوالم بیشتر پیرامون چیزهایی بود ک خونده بودم اما نمیدیدمش در تست برنامه !مثل استفاده از متد رکوست پرمیشن ریزالت .ک بنده اون رو اورایت کرده بودم اما لاگ میگرفتم جیزی در اون بعد از اکسپت یا دینای شدن نمیدیدم.
این هم یک لینک خوب دیگر از runtime-permissions-in-android-marshmallow :
لینک _ ران تایم پرمیشن در اندروید مارشملو
و کل نتیجه ای ک برای پیاده سازی گرفتم بدین شکل بود :
ابتدا متد زیر رو نوشته و پرمیشن اش رو به پرمیشن مورد نظرمون تغییر میدیم :
public boolean checkPermissionSms() {
int currentAPIVersion = Build.VERSION.SDK_INT; if (currentAPIVersion >= android.os.Build.VERSION_CODES.M) { if (ContextCompat.checkSelfPermission(LevelTestAct.this, Manifest.permission.SEND_SMS) != PackageManager.PERMISSION_GRANTED) { if (ActivityCompat.shouldShowRequestPermissionRationale(LevelTestAct.this, Manifest.permission.SEND_SMS)) { ActivityCompat.requestPermissions(LevelTestAct.this, new String[]{Manifest.permission.SEND_SMS}, 22); } else { ActivityCompat.requestPermissions(LevelTestAct.this, new String[]{Manifest.permission.SEND_SMS}, 22); } return false; } else { return true; } } else { return true; } }
و حالا ب شکل زیر استفادش میکنیم .و دستوراتی که میخوایم در صورت مجوز گرفتن اجرا بشود در قسمت ایف می نویسیم:
//using boolean resultsms = checkPermissionSms(); if (resultsms) { //Do work } else { }
البته واسه تست برنامه از این لینک پایین استفاده کردم و روی گوشی واقعی تست نکردم
کلا پرمیشن ها به دودسته ی نرمال و خطرناک تقسیم بندی شدن .گروه اول ک نرمال هست در ابتدای نصب اپلیکشن ب کاربر نشون داده میشه .اما دسته ی دوم در اندروید 6 ب بالا در بدو استفاده از آن ب کاربر نشون داده میشه .و ازش درخواست مجوز میکنه .
لینک زیر رو ببینید لیست کامل پرمیشن هایی ک باید رکوئست پرمیشن براشون بدیم رو گفته .
نکته : هرکدوم از پرمیشن های نام برده شده دارای زیر مجموعه ای هستن .که اگر کاربر ب یکی از زیرمجموعه هاا اوکی داد ، مجوز استفاده از بقیه ی پرمیشن هاا در همان گروه هم ب طور خودکار داده میشه ! طبق نوشته ی زیر :
If any permission from permission group is granted, then other permissions from the same group will be granted automatically. Likewise if any permission from permission group is denied, then entire group will be denied.
For Example,Once READ_EXTERNAL_STORAGE is granted, application will also grant WRITE_EXTERNAL_STORAGE permission.
پرمیشن رایت و رید اکسترنال استوریج هم شامل پرمیشن هایی میشه ک باید براش دراخوست بدید ب کاربر .و اگر ندید برنامه کرش میکنه .(حالا اینکه بدون اون برنامتون کار کرده واسم جای سواله !) ک ی جای کار بنظر اشتباه هست .
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .