درخواست های ارتباط
جستجو
    لیست دوستان من
    صندوق پیام
    همه را دیدم
    • در حال دریافت لیست پیام ها
    صندوق پیام
    رویدادها
    همه را دیدم
    • در حال دریافت لیست رویدادها
    همه رویدادهای من
    اطلاعات مطلب
      مدرس/نویسنده
      مهدی عادلی فر
      امتیاز: 242797
      رتبه:6
      111
      196
      285
      1456
      مهدی عادلی، بنیان گذار TOSINSO. کارشناس ارشد نرم افزار کامپیوتر از دانشگاه صنعتی امیرکبیر و #C و جاوا و اندروید کار می کنم. در زمینه های موبایل و وب و ویندوز فعالیت دارم و به طراحی نرم افزار و اصول مهندسی نرم افزار علاقه مندم. پروفایل کاربر
      دوره های مرتبط
      دوره های توسینسو دوره آموزشی برنامه نویسی حرفه ای پایتون به زبان ساده
      دوره آموزشی برنامه نویسی حرفه ای پایتون به زبان ساده
      مدرس: حسین احمدی
      این دوره را در 23 قسط خریداری کنید
      با خرید این دوره مبلغ 7,425 تومان هدیه بگیرید
      ساخت و مدیریت ربات تلگرام از صفر با زبان سی شارپ
      ساخت و مدیریت ربات تلگرام از صفر با زبان سی شارپ
      مدرس: مهدی عادلی فر
      این دوره را در 2 قسط خریداری کنید
      دوره آموزشی برنامه نویسی به زبان پرل بصورت پروژه محور
      دوره آموزشی برنامه نویسی به زبان پرل بصورت پروژه محور
      مدرس: ایمان جوادی
      این دوره را در 13 قسط خریداری کنید
      دوره آموزشی برنامه نویسی اندروید با زبان جاوا به زبان ساده
      دوره آموزشی برنامه نویسی اندروید با زبان جاوا به زبان ساده
      مدرس: مهدی عادلی فر
      این دوره را در 27 قسط خریداری کنید
      با خرید این دوره مبلغ 8,110 تومان هدیه بگیرید
      دوره آموزشی ساخت ربات تلگرام
      دوره آموزشی ساخت ربات تلگرام
      مدرس: کاظم تقندیکی
      این دوره را در 8 قسط خریداری کنید
      دوره آموزشی پردازش متن با زبان برنامه نویسی پایتون
      دوره آموزشی پردازش متن با زبان برنامه نویسی پایتون
      مدرس: کاظم تقندیکی
      این دوره را در 20 قسط خریداری کنید
      با خرید این دوره مبلغ 7,040 تومان هدیه بگیرید
      دوره آموزشی مقدماتی برنامه نویسی جاوا به زبان ساده
      دوره آموزشی مقدماتی برنامه نویسی جاوا به زبان ساده
      مدرس: مهدی عادلی فر
      این دوره را در 17 قسط خریداری کنید
      با خرید این دوره مبلغ 5,445 تومان هدیه بگیرید
      دوره آموزشی برنامه نویسی پیشرفته زبان سی شارپ
      دوره آموزشی برنامه نویسی پیشرفته زبان سی شارپ
      مدرس: حسین احمدی
      این دوره را در 78 قسط خریداری کنید
      با خرید این دوره مبلغ 82,245 تومان هدیه بگیرید
      دوره آموزشی طراحی رابط کاربری با JavaFX
      دوره آموزشی طراحی رابط کاربری با JavaFX
      مدرس: حسام رسولیان
      این دوره را در 13 قسط خریداری کنید
      دوره آموزشی Exploit نویسی به زبان Perl
      دوره آموزشی Exploit نویسی به زبان Perl
      مدرس: ایمان جوادی
      این دوره را در 7 قسط خریداری کنید
      دوره آموزشی مقدماتی برنامه نویسی به زبان سی شارپ
      دوره آموزشی مقدماتی برنامه نویسی به زبان سی شارپ
      مدرس: حسین احمدی
      این دوره را در 17 قسط خریداری کنید
      با خرید این دوره مبلغ 8,470 تومان هدیه بگیرید
      دوره آموزشی برنامه نویسی WPF در ویژوال استودیو
      دوره آموزشی برنامه نویسی WPF در ویژوال استودیو
      مدرس: امیر حسین فضلیخانی
      این دوره را در 12 قسط خریداری کنید
      دوره تخصصی آموزش متن کاوی با ابزار NLTK
      دوره تخصصی آموزش متن کاوی با ابزار NLTK
      مدرس: کاظم تقندیکی
      این دوره را در 11 قسط خریداری کنید
      دوره آموزشی اسکریپت نویسی Batch یا Batch Scripting در ویندوز به زبان ساده
      دوره آموزشی اسکریپت نویسی Batch یا Batch Scripting در ویندوز به زبان ساده
      مدرس: حسین احمدی
      این دوره را در 11 قسط خریداری کنید

      کار کردن با مجوز های اندروید در زمان اجرا و درخواست و بررسی درخواست مجوز

      تاریخ 18 ماه قبل
      نظرات 0
      بازدیدها 667
      سلام به ITPRO های عزیز.از اندروید نسخه 6 به بعد (سطح API 23) کاربران می توانند در حالی که برنامه در حال اجرا است مجوز ها را کنترل کنند. تا قبل از این نسخه مجوز برنامه در زمان نصب برنامه کنترل می شد. این کار باعث می شود که نصب برنامه راحت صورت بگیرد زیرا که لازم نیست که کاربر اول مجوز ها را مطالعه و بررسی کند و بعد برنامه را نصب کند (بگذریم که همیشه برنامه ها را بدون بررسی مجوز ها نصب می کردیم :D) همچنین این روش به کاربر کمک می کند تا بتواند قدرت بیشتری در دادن مجوز به برنامه ها داشته باشد. برای مثال در این روش کاربر می تواند مجوز استفاده از دوربین را به برنامه بدهد ولی مجوز استفاده از GPS را به برنامه ندهد. علاوه بر این امکانات کاربر می تواند هر وقت که بخواهد به قسمت تنظیمات رفته و مجوز ها را از برنامه بگیرد. مجوز ها به دو دسته تقسیم می شوند. مجوز های معمولی و

      مجوزهای خطرناک


      • مجوز های معمولی مجوز هایی هستند که نمی توانند به حریم خصوصی کاربر آسیبی بزنند. اگر برنامه شما یک سری مجوز معمولی را در manifest خود داشته باشد اندروید به صورت اتوماتیک این مجوز ها را به برنامه خواهد داد. اتصال به اینترنت یکی از این مجوز ها می باشد.
      • مجوزهای خطرناک مجوز هایی هستند که می توانند به برنامه اجازه دستیابی به داده های حیاتی کاربر را بدهند. اگر برنامه این مجوز ها را در manifest خود داشته باشد اندروید از کاربر به ازای تک تک این مجوز ها تاییدیه می گیرد.
      در همه ی نسخه های اندروید برنامه شما باید کل مجوز ها را در فایل manifest معرفی نماید. که اگر نسخه اندروید کمتر از 6 باشد هنگام نصب کاربر باید مجوز ها را تایید کند و از اندروید 6 به بعد و خود اندروید 6 هنگام اجرا مجوز های خطرناک از کاربر سوال می شود. کاربر در نسخه 6 به بعد می تواند یک یا چند مجوز را به کاربر ندهد. در این صورت برنامه را باید به گونه ای طراحی کنیم که اگر مجوز مورد نظر در اختیار برنامه قرار نگرفت برنامه ما از کار نیفتد و اصطلاحا کرش نکند. نحوه چک کردن این که آیا یک مجوز را دارا هستیم یا خیر در این مطلب توضیح داده ایم.

      چرا برنامه ها به این همه مجوز نیاز دارند؟


      گاهی اوقات لازم است که شما به کاربر توضیح دهید که چرا نیاز به یک مجوز دارید. برای برخی از برنامه ها دادن مجوز برای کاربر توجیه پذیر است برای مثال یک برنامه عکاسی از نظر کاربر مشکلی ندارد که به دوربین دسترسی داشته باشد. اما کاربر درک نمی کند که چرا همین برنامه عکاسی نیاز دارد که اطلاعات مخاطبان را بخواند و یا به GPS دسترسی داشته باشد. بنابراین بهتر است قبل از این که شما درخواست مجوز از کاربر را بدهید بهتر است که یک توضیح به کاربر بدهید که چرا این مجوز را از وی می خواهید. سپس درخواست کنید. البته نباید توضیحات شما زیاد و خسته کننده باشد زیرا که در این صورت کاربر فکر می کند که برنامه شما خوب نیست و آن را حذف می کند.

      درخواست مجوز از کاربر


      اگر برنامه شما یک مجوز را نداشته باشد شما می توانید ان را از کاربر درخواست نمایید. این درخواست با استفاده از متد requestPermissions انجام می شود. برنامه شما باید این متد را به شکلی فراخوانی کند که مجوزی را که می خواهد به همراه یک کد درخواست به آن ارسال کند. در این صورت یک دیالوگ به کاربر نشان داده می شود و درخواست مجوز مورد نظر را می دهد. هنگامی که کاربر به درخواست ما پاسخ می دهد به دلیل یک متد callback اجرا می شود و در آن متد باید بررسی کنیم که آیا کاربر اجازه دسترسی داده است یا خیر. تشخیص دسترسی به مجوز مورد نظر با استفاده از کد درخواست امکان پذیر می باشد. کد زیر چک می کند که کاربر مجوز خواندن اطلاعات مخاطبان را دارد یا خیر و اگر ندارد آن را از کاربر درخواست می کند.
      if (ContextCompat.checkSelfPermission(thisActivity,
                      Manifest.permission.READ_CONTACTS)
              != PackageManager.PERMISSION_GRANTED) {
      
          // نمایش توضیحات در صورت نیاز
          if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,
                  Manifest.permission.READ_CONTACTS)) {
      
              // محلی که می توان برای کاربر توضیحات فرستاد
          } else {
      
              // No explanation needed, we can request the permission.
      
              ActivityCompat.requestPermissions(thisActivity,
                      new String[]{Manifest.permission.READ_CONTACTS},
                      MY_PERMISSIONS_REQUEST_READ_CONTACTS);    }
      }
      
      
      متد shouldShowRequestPermissionRationale برای مشخص کردن این است که کاربر نیاز به توضیحات دارد یا خیر. این متد زمانی true برمی گرداند که قبلا ما مجوز را درخواست داده ایم و کاربر آن را رد کرده است. اگر کاربر بر روی گزینه don’t ask again کلیک کرده باشد این متد false برمی گرداند و همچنین اگر خود دستگاه اجازه دسترسی به مجوز مورد نظر را ندهد این متد False برمی گرداند.

      بررسی نتیجه درخواست مجوز


      گفتیم که نتیجه در خواست ها در یک متد callback قرار می گیرد. به این شکل که وقتی ما درخواست یک مجوز را می دهیم در نتیجه یک متد با نام onRequestPermissionsResult صدا زده می شود. در این متد ما می توانیم تشخیص دهیم که کاربر مجوز را داده است یا خیر. در کد زیر برای مجوز دسترسی به مخاطبان را نشان می دهد. دقت کنید که از کد درخواستی که ما داشتیم در این متد استفاده می شود.
      @Override
      public void onRequestPermissionsResult(int requestCode,
              String permissions[], int[] grantResults) {
          switch (requestCode) {
              case MY_PERMISSIONS_REQUEST_READ_CONTACTS: {
                  // اگر درخواست مجوز کنسل شده باشد نتیجه خالی خواهد بود
                  if (grantResults.length > 0
                      && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
      
                      // مجوز دریافت شده است
      
                  } else {
      
                      // مجوز دریافت نشده است.
                     
                  }
                  return;
              }
      
          }
      }
      
      

      برچسب ها
      مطالب مرتبط

      در حال دریافت اطلاعات

      نظرات
      هیچ نظری ارسال نشده است

        برای ارسال نظر ابتدا به سایت وارد شوید

        arrow