آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

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

Fk_AndroidDev  7 سال پیش  7 سال پیش
0 0

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

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

0 0
تو انجمن سرچ کنید . (7 سال پیش)
 برای این سوال 4 پاسخ وجود دارد.
پاسخ به سوال 
مهدی  7 سال پیش
+2 0

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

لینک

پاسخ به سوال 
Fk_AndroidDev  7 سال پیش
+4 0

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

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

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

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

لینک

پاسخ به سوال 
Fk_AndroidDev  7 سال پیش
+3 0

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

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


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