آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

هر کار میکنم دایرکتوری جدید ایجاد نمیشه چرا؟ api target 23

سعید  7 سال پیش  7 سال پیش
0 0

سلام.

هر کار میکنم دایرکتوری جدید ایجاد نمیشه چرا؟

 File folder = new File(Environment.getExternalStorageDirectory() + "/mashin");
            boolean success = true;
            if (!folder.exists()) {
                Log.i("Log","no exist");
                success = folder.mkdir();
            }
            if (success) {
               Log.i("Log","sucsess");
            } else {
                Log.i("Log","Noooooo");
            }
+2 0
سلام ، خطایی نمیده ؟ پیام Success چاپ میشه ؟ اگر از جنی موشن استفاده میکنید به مسیر صحیح محل ذخیره سازی رفته اید ؟ این مسیر با Emulator اندروید متفاوت است . (7 سال پیش)
0 0
سلام.نه متاسفانه.تو امولیتور اندروید استدیو اینجوریه.اندروید 6 هم استفاده میشه. از این استفاده میشه. public static final String DIR_SDCARD = Environment.getExternalStorageDirectory().getAbsolutePath(); (7 سال پیش)
 برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال 
سعید  7 سال پیش
0 0

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

اینجوری استفاده میشن.اندروید 6 پرمیشن دیگه هم میخواد؟

 public static final String DIR_SDCARD = Environment.getExternalStorageDirectory().getAbsolutePath();
    public static final String DIR_APP = DIR_SDCARD + "/mashin";
    public static final String DIR_TEMP = DIR_APP + "/temp";
    public static final String DIR_FINAL = DIR_APP + "/final";

new File(DIR_APP).mkdirs(); new File(DIR_TEMP).mkdirs(); new File(DIR_FINAL).mkdirs();


پرمیشن های زیر هم ست شده 

 

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

0 0
در اندروید 6 برای دسترسی به حافظه پرمیشن به صورت لحظه ای گرفته میشه . در این رابطه دوستان داخل انجمن سوالات و راه کار هایی را مطرح کرده اند . (7 سال پیش)
0 0
سلام آقای کاشی زاده چیزی پیدا نکردیم اگه ممکن هست رو بزارید. (7 سال پیش)
0 0
این لینک رو ببینید (7 سال پیش)
0 0
(7 سال پیش)
0 0
منم دقیقا به همین مشکل برخوردم راه هایی ک تو انجمن بود رفتم به جواب نرسیدم :/ (7 سال پیش)
0 0
دوستان روی امولاتور فقط اینجوریه اخه رو گوشیم که اندروید 5 هست کار میکنه :| در ضمن نسخه ایکلیپس نورحسینی هست لطفا یکی کمک کنه :| (7 سال پیش)
0 0
البته یه سری لایبرری هم هست که تو github سرچ کنید پیدا میشن (7 سال پیش)
0 0
خب به نظرم این چیزی نیست که بخوام از لایبرری استفاده کنم :| و دنبال استفاده از لایبرری هم نیستم (7 سال پیش)
0 0
لایبرری کوچیک برای مدیریت پرمیشن ها نه لایبرری های بزرگ لایبرری میتونه 1 کلاس هم باشه:) (7 سال پیش)
0 0
امکانش هست که Target Api/Sdk رو بیاریم پایین تا استفاده نکنیم از Android 6 ؟ اگه آره لطفا بگین چجوری .چون منم همین مشکل رو دارم ترجیح میدم این همه دردسر نکشم . (7 سال پیش)
0 0
برای این کار کافیه روی پروژه راست کلیک کنی بری به Properties از اونجا هم داخل تب Android میتونی تغییراتی رو اعمال کنی (7 سال پیش)
0 0
در ضمن دوست من اگه به همچین مشکلی خوردی احتمال زیاد مشکل از امولاتور هست من با امولاتورا دیگه جواب گرفتم همچنین با وصل کردن گوشی ولی امولاتور ایکلیپس (ورژن نورحسینی) مشکل داشت ااین لینک هم یک امولاتور رو معرفی کرده خودمم تازه میخوام برم سر وقتش :) لینک (7 سال پیش)
0 0
دوست عزیز شما رو گوشی جواب گرفتی چون اندروید 5 داره در اندروید 6 به بعد روش گرفتن پرمیشن تغییر کرده، پس مطمئن باشین که رو گوشی ای که اندروید 6 داره هم برنامه کرش خواهد کرد (7 سال پیش)
0 0
باید پرمیشن نوشتن در کارت حافظه به صورت ران تایم از کاربر گرفته بشه (7 سال پیش)
پاسخ به سوال 
silent scream  7 سال پیش
+1 0

گرفتن پرمیشن نوشتن در کارت حافظه در اندروید 6 به صورت رانتایم :

int REQUEST_WRITE_EXTERNAL_STORAGE=1;
////...
        File storageDir = null;
        if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
            //RUNTIME PERMISSION Android M
            if(PackageManager.PERMISSION_GRANTED==ActivityCompat.checkSelfPermission(context,Manifest.permission.WRITE_EXTERNAL_STORAGE)){
                storageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "myPhoto");
            }else{
                requestPermission(context);
            }   

        }
        return storageDir;
////...
        private static void requestPermission(final Context context){
        if(ActivityCompat.shouldShowRequestPermissionRationale((Activity)context,Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
            // Provide an additional rationale to the user if the permission was not granted
            // and the user would benefit from additional context for the use of the permission.
            // For example if the user has previously denied the permission.

            new AlertDialog.Builder(context)
                    .setMessage(context.getResources().getString(R.string.permission_storage))
                    .setPositiveButton(R.string.tamam, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    ActivityCompat.requestPermissions((Activity) context,
                            new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
                            REQUEST_WRITE_EXTERNAL_STORAGE);
                }
            }).show();

        }else {
            // permission has not been granted yet. Request it directly.
            ActivityCompat.requestPermissions((Activity)context,
                    new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
                    REQUEST_WRITE_EXTERNAL_STORAGE);
        }
    }

///...

    @Override
    public void onRequestPermissionsResult(int requestCode,String permissions[], int[] grantResults) {
        switch (requestCode) {
            case UtilityPhotoController.REQUEST_WRITE_EXTERNAL_STORAGE: {
                if (grantResults.length == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    Toast.makeText(context,
                            getResources().getString(R.string.permission_storage_success),
                            Toast.LENGTH_SHORT).show();

                } else {
                    Toast.makeText(context,
                            getResources().getString(R.string.permission_storage_failure),
                            Toast.LENGTH_SHORT).show();
                    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
                }
                return;
            }
        }
    }

+1 0
این یک مثال هست که باید به نا به نیاز خود تون تغییر ش بدید. اگر نیاز به توضیح بیشتری دارید بگیید تا توضیح بدم (7 سال پیش)
پاسخ به سوال 
silent scream  7 سال پیش
0 0

عجبا! سوال میپرسید وقتی جواب میدیم هم اسپم می کنید!!!! کجای پاسخ من اسپم بود؟ تقصیر خودمه که هر وقت کسی سوال پرسید بی هیچ چشم داشتی جواب دادم


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .