هم اکنون عضو شوید

ورود

فراموشی گذرواژه

گذروازه خود را فراموش کردید ؟

ورود

عضو شوید

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

آموزش RunTime Permission در برنامه نویسی اندروید

آموزش RunTime Permission در برنامه نویسی اندروید

سلام دوستان در این سری از آموزش های برنامه نویسی اندروید به آموزش RunTime Permission در برنامه نویسی اندروید می پردازیم. شاید سوال شما این باشد که این دسترسی در زمان اجرا یا Runtime Permission به چه دردی می خورند و اصلا کاربردی دارند؟ زمانی که کاربر دارد اپلیکیشن شما را نصب می کند در بخش permission هیچ دسترسی نشان داده نمی شود ! و گفتنی است که RunTime Permission از Api 23 یا Marshmallow وارد اندروید شده است و زمانی که شما در خال ساخت پروژه خود هستید باید MinSdk را برابر با ۲۳ قرار دهید همانطور که گفتیم این دسترسی ها به کاربر نمایش داده نمی شود اما به جای آن از در هنگام استفاده از برنامه پرسیده می شود که آیا اجازه میدهید این اپ به طور مثال از اینترنت استفاده کند و دقت کنید شما باید همانند قبل دسترسی ها را در AndroidManifest.xml قرار دهید. در ادامه به مثالی از نحوه استفاده از آن می پردازم.

ما به یکسری از دسترسی های می پردازیم بقیه ی آنها نیز به همین شکل هستند.

ابتدا فایل AndroidManifest.xml را باز کرده دسترسی ها را اضافه کنید.

فایل Activity_main.xml را باز کرده کدهای زیر را در آن قرار دهید در ادامه آنها را توضیح می دهیم.

در بالا تعدادی دکمه است با کلیک کردن بروی آنها اجزای دسترسی از کاربر گرفته می شود.

layout شما همانند زیر می شود.

 

بعد از نصب برنامه یک صفحه برای شما می آید (فقط در گوشی هایی با API 23 به بالا) که از شما می پرسد آیا می خواهید این برنامه این دسترسی ها را داشته باشد شما همه را فعال کرده تا تست برنامه را ببینید (همانند عکس زیر)

 

کد های زیر بعد از Oncreate قرار دهید(قبل از آخرین علامت آکولاد بسته زیرا این یک void است  )

در صورتی که شما در مرحله قبل دسترسی ها را باز نکرده باشید ما یک Void داریم که تشخیص می دهد که آیا شما آن دسترسی ها را داده اید یا خیر البته این void دو مقدار ورودی دارد به خاطر اینکه ما می خواهیم چندین دسترسی را بررسی کنیم به این شکل آن را ایجاد کرده ایم و در صورتی که قبلا این دسترسی را داده باشید با پیام permission is already granted روبه رو خواهید شد.

این void ما دو مقدار ورودی دارد اولی نام آن که به صورت رشته است و دومی کد دسترسی آن که از نوع عددی (integer) است.

کد زیر را هم بعد از Oncreate اضافه کنید.

 

این کد برای این است که برنامه تشخصی دهد شما روی چه دکمه ای کلیک کرده اید و بعد از کلیک یک پیام به شما نمایش میدهد که آیا شما اجزای دسترسی می دهید یا خیر .

همانطور که گفتیم آن Void ما مقدار ورودی دوم ان به صورت عددی است و نیاز دارد تا مقداری برای آن فرستاده شود برای همین باید کد زیر را قبل از Oncreate اضافه کنید.

عدد های بالا مقدار های عددی هر یک از دسترسی ها است.

برای اینکه بعد تایید یا رد کردن دسترسی توسط کاربر ما کاری انجام دهیم (زمانی که به ما دسترسی میدهد یا نمی دهد)

باید کد زیر را اضافه کنید.

 

کد های بالا یک request برای انجام یک کار به طور مثال نوشتن در حافظه یا خواندن از جافظه می فرستد و قبل از آن از کاربر می خواهد که دسترسی آن کار را بدهد در صورتی که دسترسی دهد پیام Permission Granted و در صورتی که نپذیر پیام Permission denied نمایش داده می شود.

این آموزش هم به پایان رسید .

 

موفق باشید.

درباره نویسنده

با زبان های برنامه نویسی C# , Java , Php به صورت تخصصی کار کردم و بیشتر وقتم رو در برنامه نویسی می گذرونم علاقه زیادی به ساخت اپلیکیشن اندروید دارم.

نظرها ( ۲۱ )

  1. arian
    ۱۷, تیر , ۱۳۹۶ در ۱۰:۵۴ ق.ظ

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

  2. یاشار
    ۲۶, تیر , ۱۳۹۶ در ۳:۰۹ ب.ظ

    سلام . واقعا فوق العاده بود . حیفم اومد تشکر نکنم

  3. […] آموزش RunTime Permission در برنامه نویسی اندروید […]

  4. میثم
    ۱۴, آذر , ۱۳۹۶ در ۴:۴۵ ب.ظ

    خیلی ممنون بابت زحماتتون دمتون گرم

  5. […] آموزش RunTime Permission در برنامه نویسی اندروید […]

  6. […] آموزش RunTime Permission در برنامه نویسی اندروید […]

  7. امید حیدری
    ۵, اسفند , ۱۳۹۶ در ۳:۴۰ ب.ظ

    سلام. .ممنونم. با این روش اگر گوشی Api 23 نبود و کمتر بود، گوشی چه عملکردی خواهد داشت؟

  8. […] آموزش RunTime Permission در برنامه نویسی اندروید […]

  9. […] آموزش RunTime Permission در برنامه نویسی اندروید […]

  10. زهرا
    ۱۲, تیر , ۱۳۹۷ در ۹:۲۵ ق.ظ

    سلام سپاس گذارم از زمان و صبری که گذاشتید. بسیار شیوا وصحیح بود <3

  11. ali
    ۲۷, مهر , ۱۳۹۷ در ۱۱:۳۰ ق.ظ

    سلام خسته نباشید من میخوام این دسترسی هارو از داخل کلاس g بگیرم چون توی اون باید برنامم حافظه رو بخونه میشه بگید توی context ها چی بزارم چون گیر میده هرچی میزارم

  12. مهدی
    ۳۰, مهر , ۱۳۹۷ در ۳:۳۱ ب.ظ

    سلام
    با تشکز فراوان از شما .
    یک سوال داشتم خدمتتان .
    من یک برنامه نوشتم که بارکد خوان هست و اطلاعات بارکد رو می خونه و به سرور ارسال می کنه و یک سری اطلاعات که مرتبط با اون بارکد هست رو از دیتابیس میگیره به روش جی سون و به کاربر نمایش میده .( یک سیستم کنترل تردد )
    این برنامه به خوبی با اندروید نسخه های ۴ و ۵ کار می کنه و هیچ مشکلی نداره .
    اما وقتی بر روی اندروید ۶ به بالا نصب می کنم . برنامه اجرا میشه و وقتی هم که می خواد بارکد رو بخونه . از کاربر اجازه دسترسی هم سوال می کنه . اما بعد از خواندن بارکد ، برنامه متوقف میشه یا خارج میشه (کرش) و یا دوباره برنامه از اول اجرا میشه . و نمی تونه کار مورد نظر رو انحام بده .
    minisdk برنامه ۱۶ هست .
    به نظر شما اشکال از چی می تونه باشه که در نسخه های شش به بالا کار نمی کنه و نمی تونه اتصال برقرار کنه ؟

  13. هادی
    ۸, دی , ۱۳۹۷ در ۱۱:۳۹ ب.ظ

    خدا خیرت بده
    ممنون

  14. samie
    ۲۴, دی , ۱۳۹۷ در ۱۱:۲۴ ب.ظ

    با سلام و خسته نباشید ممنون از مطالبتون فقط یه سوال خوب من می خوام که این دسترسی ها رو قبل از نصب برنامه بهش اضافه کنم و دیگه هیچ نیازی نباشه که بخوایم بریم داخل برنامه و بهش دسترسی بدیم چون بعضی از برنامه ها قبلش این دسترسی ها رو دارند ولی بعضی برنامه ها باید نصب بشه و بعد دسترسی بدیم لطفا راهنمایی کنید که من این دسترسی ها رو بهش بدم قبل نصب خیلی ممنون از سایت خوبتون با تشکر

  15. مهدی
    ۱, اسفند , ۱۳۹۷ در ۸:۱۱ ب.ظ

    خسته نباشید… ببخشید .. همه متد ها قبل یا بعد از onCreate قرار گرفتن؟ یعنی تو خودت onCreate چیزی نباید باشه؟

  16. مرتضی امیدی پور
    ۸, مرداد , ۱۳۹۹ در ۶:۰۰ ق.ظ

    تشکر دوست عزیز. خیلی خوب این بحث رو توضیح دادین.