سلام دوستان !
در این بخش میخواهیم نحوه تعریف دسترسی ها و مجوز های برنامه در بیسیک فور اندروید را خدمت شما عزیزان توضیح دهیم ! در اندروید 6 به بالا یکسری تغییرات مربوط به برنامه ها انجام شده است . برای مثال گاهی موقع برای ایجاد یک فایل در گوشی یا دسترسی به دوربین , شماره ها یا سایر بخش ها ممکن است ارور هایی مانند تصویر زیر را مشاهده کنید :
در واقع برای رفع این ارور باید با توجه به قابلیت های برنامه خودتان , یکسری دسترسی ها را اضافه کنید و از کاربر درخواست کنید که آنها را تایید کند تا برنامه به درستی کار بکند . دسترسی هایی مانند اینترنت و … نیاز به کار خاصی ندارند اما برای دسترسی به فایل های گوشی یا مثلا دسترسی به دوربین , مخاطبین , تماس و … لازم است دسترسی مربوط به آن را ایجاد کنید .
برای اینکار به کتابخانه RuntimePermissions نیاز داریم ! این کتابخانه به صورت پیشفرض در لیست کتابخانه های اصلی بیسیک فور اندروید موجود میباشد . ابتدا این کتابخانه را فعال کنید و متغیر مربوط به آن را در بخش Process_Globals تعریف کنید :
Dim rp As RuntimePermissions
سپس در بخشی که میخواهید کادر درخواست تایید دسترسی ها نمایش داده شوند از دستور CheckAndRequest استفاده کنید . برای مثال ما میخواهیم از کاربر درخواست کنیم که به برنامه ما اجازه دسترسی به دوربین و فایل ها را بدهد :
rp.CheckAndRequest(rp.PERMISSION_WRITE_EXTERNAL_STORAGE) rp.CheckAndRequest(rp.PERMISSION_CAMERA)
همچنین به غیر از این لازم است کد مربوط به این دسترسی ها را در Manifest نیز قرار دهید :
AddPermission(android.permission.WRITE_EXTERNAL_STORAGE) AddPermission(android.permission.CAMERA)
و در پایان باید یک بخش با نام PermissionResult ایجاد کنید . با استفاده از این بخش میتوانید بفهمید که کاربر به برنامه این دسترسی ها را داده است یا نه :
Sub Activity_PermissionResult (Permission As String, Result As Boolean) End Sub
این بخش را حتما باید ایجاد کنید و در غیر اینصورت برنامه ارور میدهد . میتوانید مانند کد بالا این بخش را خالی بگذارید یا با استفاده از کد زیر میتوانید بفهمید که کاربر کدام یک از دسترسی ها را تایید کرده است . برای مثال میخواهیم در صورتی که کاربر دسترسی به دوربین را غیر فعال کند یک پیغام نمایش داده شود :
Sub Activity_PermissionResult (Permission As String, Result As Boolean) If Permission = rp.PERMISSION_CAMERA And Result = False Then Msgbox("شما اجازه دسترسی به دوربین را به این برنامه نداده اید و در اینصورت ممکن است برخی از بخش های برنامه به درستی کار نکنند","") End If End Sub
حالا اگر از برنامه خروجی بگیرید . در اندروید 6 به بالا یک کادر مانند تصویر زیر نمایش داده میشود :
کاربر باید گزینه ALLOW را انتخاب کنید تا دسترسی مربوطه به برنامه داده شود . بهتر است قبل از اینکه این کادر را نمایش دهید یک پیغام به کاربر نمایش دهید و راهنمایی کنید که حتما ALLOW را انتخاب کند و به برنامه شما اجازه دسترسی بدهد . در غیر اینصورت ممکن است برخی از بخش های برنامه شما به درستی کار نکنند و ارور نمایش داده میشود …
در پایان امیدواریم که این آموزش هم مورد استفاده شما عزیزان قرار گرفته باشد .
موفق باشید !
بسیار عالی مرسی . اما چجوری باید وضعیت دسترسی رو چک کنیم که مثلا برنامه دسترسی رو نیاز داره یا نداره برای درخواست
با تشکر
سلام . نیازی به این کار نیست و کادر درخواست مجوز فقط یکبار نمایش داده میشه و در صورتی که کاربر اون را تایید کرده باشه دیگه نمایش داده نمیشه و در ضمن فقط در اندروید 6 به بالا نمایش داده میشه …
سلام
خدا خیرت بده داداش
آموزش خیلی خوبی بود.