5/5 (1)

سلام خدمت شما دوستان و همراهان سایت اسمارت دولوپرز. تو این جلسه میخام در مورد حافظه های داخلی و خارجی و نحوه به دست آوردن آدرس External Storage در اندروید و همچنین نحوه ذخیره اطلاعات در حافظه خارجی به صورت برنامه نویسی صحبت کنم .

چگونه آدرس Sd Card را در اندروید به دست بیاوریم ؟

یکی از راه های به دست آوردن آدرس External Storage در اندروید یا همون SD  کارت استفاده از کلاس Environment و متد ()getExternalStorageDirectory هستش :

و برای ذخیره اطلاعات کافیه از متغیر SDPath به عنوان ریشه اصلی حافظه خارجی استفاده کنید و زیر پوشه ها و آدرس و اسم دقیق فایل رو با استفاده از کاراکت / از هم جدا کنید برای مثال اگه به آدرس فایلی به اسم myFile.txt در پوشه MyFolder نیاز دارید به این صورت میتونید این آدرس رو بسازید :

فقط برای کار کردن با متد ()Environment.getExternalStorageDirectory  نیاز به مجوز های خواندن و نوشتن در کارت حافظه، داخل فایل Manifest دارید :

و همینطور از اندروید 6 به بالا برای فعال کردن این مجوز ها باید به صورت ران تایم از کاربر درخواست کنید. اگه با نحوه این کار آشنا نیستید میتونید آموزش Runtime Permission رو ببینید .

به دست آوردن آدرس فولدر های public در اندروید  مثل فولدر Picture:

برای به دست آوردن آدرس این پوشه ها میتونید از این کد استفاده کنید :

مشکل ()Environment.getExternalStorageDirectory در دریافت آدرس SD Card :

بعضی از برند های گوشی های تلفن همراه مثل سامسونگ اجازه دسترسی مستقیم به کارت حافظه رو نمیدن و متد ()Environment.getExternalStorageDirectory فقط آدرس حافظه داخلی رو به ما میده . پس چطور باید داخل کارت حافظه اطلاعاتمون رو ذخیره کنیم ؟ اگه برنامه ما نیاز به این داشته باشه که اطلاعات با حجم بالایی ذخیره کنه و حافظه داخلی گوشی کاربر هم فضای کافی نداشته باشه باید چه کنیم ؟ اگه به کاربر این قابلیت رو بدیم که فضای ذخیره سازی برنامه ما رو، روی کارت حافظه قرار بده ، باعث رضایت بیشتر ایشون از برناممون نخواهیم بود ؟ اگه نیاز به کپی فایلی از حافظه داخلی به حافظه خارجی به صورت برنامه نویسی داشتیم با این وضعیت چه کنیم ؟

اگه دنبال حل این مشکل هستید و نیاز دارید که به کارت حافظه خارجی دسترسی داشته باشید میتونید ویدئویی که در این مورد تهیه کردم رو ببینید . تو این ویدئوی 25 دقیقه ای یاد میگیرید که چطوری اجازه دسترسی به کارت حافظه خارجی رو از کاربر بگیرید. که با روش های معمولی ای که بالا گفتم و در بیشتر سایت ها و منابع آموزشی هم موجوده ، امکان پذیر نیست .

حجم فایل : 60 مگابایت

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

تعداد فروش :
8

به این مطلب چه امتیازی میدهید ؟

اشتراک
باخبر شدن از
guest

4 نظرات
قدیمی ترین
جدیدترین بیشترین امتیاز
Inline Feedbacks
نمایش همه دیدگاه ها
حسام

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

یاهو

سلام
من در فایل AndroidManifest.xml :
<uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE” />
<uses-permission android:name=”android.permission.READ_EXTERNAL_STORAGE” />

در فایل MainActivity.java :
protected void onCreate(Bundle savedInstanceState) {
createExternalFile(new File(extDir, “mydir”), “”, “”);
}

private void createExternalFile(File dir, String filename, String content) {
if (! dir.exists()) {
dir.mkdirs();
}
}
دستورات فوق را درج کردم.
ولی وقتی برنامه را اجرا میکنم و در Device Explorer به بخش:
storage -> emulated -> 0 میرم، هیچ پوشه‌ای ساخته نمیشه!

لطفا راهنمایی بفرمایید. ممنون میشم.