رفتن به مطلب
برای استفاده از انجمن و عضـویت کلیک کنید.

AnswerCenter

مرکز پاسخگویی به سوالات برنامه نویسی

  • مرجع پاسخگویی
  • تولید آموزش
  • سفارش پروژه

درخواست سفارش پروژه

اطلاعیه

کاربر گرامی

به انجمن برنامه نویسی AnswerCenter.ir خوش آمدید

 برای استفاده از تمامی امکانات سایت لطفا در انجمن عضو شوید


بایگانی شده

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

مهدی ایزدی

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

پست های پیشنهاد شده

مهدی ایزدی    9,174

موسس و بنیان گذار

به نام خدا

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

بعضی از دسترسی ها یا همون 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

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
امین پوراباذری    1,039

پاسخگو و راهنما

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

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
مهدی ایزدی    9,174

موسس و بنیان گذار

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

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

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

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

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

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

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

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

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

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

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
M-CAP7AIN    516

کاربر فعال

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

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

 

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

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

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

 

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


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

×
×
  • جدید...