بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

ران تایم پرمیشن در اندروید6

مدیریت گفتگو
Fk_AndroidDev 10 سال پیش
آخرین تغییر: 10 سال پیش

 روال کار در ران تایم پرمیشن در اندورید 6 رو کسی میتونه برام  واضح توضیح بده؟

نقش onRequestPermissionsResult چیه دقیقا ؟ چرا لاگ میگیرم اصن این متد اجرا نمیشه ؟چ موقع اجرا میشه ؟ میخوام کاربر اگر DENYزد دوباره درخواست پرمیشن واسش بیاد..کلا کسی میتونه کامل توضیح بده ؟متشکرم و خسته نباشید .

نظرات

پاسخ‌ها 4

مهدی 10 سال پیش

شاید لینک پایین کمک کننده باشه

لینک

نظرات

Fk_AndroidDev 10 سال پیش

متشکرم .لینک خوبی بود از قبل دیده بودم .اما سوالم بیشتر پیرامون چیزهایی بود ک خونده بودم اما نمیدیدمش در تست برنامه !مثل استفاده از متد رکوست پرمیشن ریزالت .ک بنده اون رو اورایت کرده بودم اما لاگ میگرفتم جیزی در اون بعد از اکسپت یا دینای شدن نمیدیدم.

این هم یک لینک خوب دیگر از 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 {

          }

نظرات

مهدی 10 سال پیش
کدوم پرمیشن ها نیاز به ران تایم دارند؟ من خودم به این 2 تا پرمیشن نیاز داشتم • android.permission.READ_EXTERNAL_STORAGE • android.permission.WRITE_EXTERNAL_STORAGE و ازشون استفاده کردم ولی برنامه رو اندروید 6 کرش می کرد بعد که کمی جستجو کردم گفتن نیاز به ران تایم داره ولی بعد متوجه شدم خطا از اون نبوده و خطارو برطرف کردم و رو اندروید 6 هم جواب داد بدون ران تایم
مهدی 10 سال پیش

البته واسه تست برنامه از این لینک پایین استفاده کردم و روی گوشی واقعی تست نکردم

لینک

نظرات

Fk_AndroidDev 10 سال پیش

کلا پرمیشن ها به دودسته ی نرمال و خطرناک تقسیم بندی شدن .گروه اول ک نرمال هست در ابتدای نصب اپلیکشن ب کاربر نشون داده میشه .اما دسته ی دوم در اندروید 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.

پرمیشن رایت و رید اکسترنال استوریج هم شامل پرمیشن هایی میشه ک باید براش دراخوست بدید ب کاربر .و اگر ندید برنامه کرش میکنه .(حالا اینکه بدون اون برنامتون کار کرده واسم جای سواله !) ک ی جای کار بنظر اشتباه هست .

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .