رفتن به مطلب

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


مهدی ایزدی

ارسال‌های توصیه شده

به نام خدا

سلام و خسته نباشید خدمت دوستان عزیز

بعضی از دسترسی ها یا همون Permission ها توی اندروید 6 یا همون API 23 و به بالا نیاز هستش که کاربر به محض اجرای برنامه

اون دسترسی هارو تایید کنه...

دسترسی هایی مثل دسترسی به WRITE EXTERNAL STORAGE ...

خب اگر شما این کاری که بنده در زیر آموزش میدم رو انجام ندید برنامه ی شما روی اندروید 6 عملکرد WRITE EXTERNAL STORAGE رو انجام نمیده...

حتی اگر دسترسی رو از توی Manifest هم اضافه کرده باشید کافی نیست و باید کار زیر او انجام بدید :

این دو تا متد رو توی MainActivity در قسمت خارج از OnCreate قرار بدید :

    @Override
    public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
        switch (requestCode) {
            case 12234: {
                // If request is cancelled, the result arrays are empty.
                if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {

                    //dastrasi dade shode
                } else {
                    new AlertDialog.Builder(this)
                            .setMessage("برای اجرای برنامه باید حتما دسترسی رو به برنامه بدهید")
                            .setCancelable(false)
                            .setNegativeButton("دادن دسترسی", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    setPermission();
                                }
                            })
                            .show();
                }
                return;
            }
        }
    }

    public void setPermission(){
        if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
            if (ActivityCompat.shouldShowRequestPermissionRationale(this,
                    android.Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
                ActivityCompat.requestPermissions(this, new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, 12234);
            } else {
                ActivityCompat.requestPermissions(this, new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, 12234);
            }
        }
    }

 

دقت داشته باشید متد onRequestPermissionResult حالت Override رو داره و متد setPermission حالت عادی !

خب حالا کافی هستش که توی onCreate شما بیایید فقط رویداد setPermission رو فراخوانی کنید یعنی بنویسید :

setPermission();

در کنار کارهای بالا یادتون نره که دسترسی لازمه رو توی Manifest هم قرار بدید مثلا:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

 

نکته: برای دسترسی هایی مثل دسترسی به اینترنت و موقعیت مکانی و اینجور دسترسی هایی نیاز به کار بالا نیست...

کسایی که با iPhone کار کردن خیلی بهتر میدونن که چه دسترسی هایی رو موقع اجرا کردن برنامه ها در ابتدای برنامه از کاربر اجازه میگیره :girl_flag_of_truce:

 

خلاصه ی آموزش بالا هم این میشه که کاربر ملزم هستش برای استفاده از برنامه یک پیغام براش نمایش داده میشه واسه دسترسی که باید تاییدش کنه

آموزشی که داده شد روی اندروید 6 پیغام زیر رو به همراه داره :

soal.PNG

 

کاملا اختصاصی از انجمن برنامه نویسی AnswerCenter.IR

لینک ارسال
به اشتراک گذاری در سایت های دیگر

استاد بهتره که فعلا تارگت رو روی 21 یا 22 بگذارن که مشکل اجرای دسترسی های خطرناک رو نداشته باشن فعلا این من پیشنهاد میکنم چون هنوز برای کاربرای ایرانی جا نیافتاده ازش اجازه بگیری معمولا رد میکنن این اجازه ها رو و برنامه با اخلال روبه رو میشه ولی وقتی تارگت روی 21 یا 22 باشه دیگه نیاز به اجازه گرفتن نیست 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 11 دقیقه قبل، امین پوراباذری گفته است :

استاد بهتره که فعلا تارگت رو روی 21 یا 22 بگذارن که مشکل اجرای دسترسی های خطرناک رو نداشته باشن فعلا این من پیشنهاد میکنم چون هنوز برای کاربرای ایرانی جا نیافتاده ازش اجازه بگیری معمولا رد میکنن این اجازه ها رو و برنامه با اخلال روبه رو میشه ولی وقتی تارگت روی 21 یا 22 باشه دیگه نیاز به اجازه گرفتن نیست 

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

شما مثلا روی آیفون حتی Instagram رو هم که بخوای نصب کنی باز ازت برای هر کاری در دفعه اول اجازه دسترسی رو میگیره

دسترسی به گالری

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

دسترسی به مثلا ضبط صدا

و خیلی موارد دیگه... 

فرهنگ باید جا بیوفته... :unknown:

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

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 2 سال بعد...
در 41 دقیقه قبل، mr.saymon گفته است :

سلام و وقت بخیر

 

در بیسیک چجور هستش کدها ؟

تاپیک جدید بزنید ، یا سرچ کنید داخل انجمن

Android Tutorial - Runtime Permissions (Android 6.0+ Permissions) | B4X Community - Android, iOS, desktop, server and IoT programming tools

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

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

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...