external storage(حل نشده)
با سلام به دوستان سوال من اینه که میخوام تو حافظه خارجی همون external storage یک پوشه بسازم و نامشو تغییر بدم چجوری باید اینکارو بکنم
تو نت سرچ کردم کد هاشو دیدم ولی امتحان کردم نشد یعنی sdcard رو نمیتونم پیدا کنم ممنون میشم کمکم بکنید
اول از همه اینو بدونید که مسیر حافظه ی داخلی: storage/sdcard0/ و مسیر حافظه ی رم storage/sdcard1/ هست.
حالا برای ساخت پوشه از کد زیر باید استفاده کنید (به جای new-folder اسم پوشه رو بنویسید):
new File("/storage/sdcard0/new-folder").mkdirs(); // ساخت پوشه در حافظه ی داخلی
new File("/storage/sdcard1/new-folder").mkdirs(); // ساخت پوشه در رم
برای تغییر اسم پوشه هم از کد زیر استفاده کنید:
new File("/storage/sdcard0/new-folder").renameTo(new File("/storage/sdcard0/new-name")); // حافظه ی داخلی
new File("/storage/sdcard1/new-folder").renameTo(new File("/storage/sdcard1/new-name")) // رم
پرمیشن زیر رو هم به منیفست اضافه کنید:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
توی کلاس G کد زیر رو وارد کنید:
public static final String DIR_SDCARD = Environment.getExternalStorageDirectory().getAbsolutePath();
public static final String DIR_FOLDER = DIR_SDCARD + "/folder_name/";
و داخل onCreate هم این پوشه رو بسازید(کد زیر در onCreate):
new File(DIR_FOLDER).mkdirs();
احتمال داره مشکل از ورژن API که ازش رو امولیتورت استفاده میکنی باشه چون خودمم به همین مشکل برخوردم .AVD که از API پایین تر از 23 ( marshmallow) استفاده میکنه رو امتحان کن احتمالا جواب میده چون برا خودم جواب داد . علتشم اینه که از اندروید 6 به بعد کاربر بعد از نصب نرم افزار اجازه ها رو (permisson) و به این علت که run کردن اپ رو امولتور دگ این رو شبیه سازی نمیکنه (دقیقا نمیدونم برا چی ) برنامه کرش میکنه . البته راه حلشم هم بگردی با سرچ پیدا میکنی ولی فک کنم با همون تست روی ورژن های پایین تر اندروید جواب بگیری
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .