سلام خدمت شما دوستان و همراهان سایت اسمارت دولوپرز. تو این جلسه میخام در مورد حافظه های داخلی و خارجی و نحوه به دست آوردن آدرس External Storage در اندروید و همچنین نحوه ذخیره اطلاعات در حافظه خارجی به صورت برنامه نویسی صحبت کنم .
چگونه آدرس Sd Card را در اندروید به دست بیاوریم ؟
یکی از راه های به دست آوردن آدرس External Storage در اندروید یا همون SD کارت استفاده از کلاس Environment
و متد ()getExternalStorageDirectory
هستش :
1 2 |
File SDRoot=Environment.getExternalStorageDirectory(); String SDPath=SDRoot.getAbsolutePath(); |
و برای ذخیره اطلاعات کافیه از متغیر SDPath
به عنوان ریشه اصلی حافظه خارجی استفاده کنید و زیر پوشه ها و آدرس و اسم دقیق فایل رو با استفاده از کاراکت /
از هم جدا کنید برای مثال اگه به آدرس فایلی به اسم myFile.txt
در پوشه MyFolder
نیاز دارید به این صورت میتونید این آدرس رو بسازید :
1 2 |
String MyFilePath=SDPath + "/MyFolder/myFile.txt"; File MyFile=new File(MyFilePath); |
فقط برای کار کردن با متد ()Environment.getExternalStorageDirectory
نیاز به مجوز های خواندن و نوشتن در کارت حافظه، داخل فایل Manifest دارید :
1 2 |
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE> |
و همینطور از اندروید 6 به بالا برای فعال کردن این مجوز ها باید به صورت ران تایم از کاربر درخواست کنید. اگه با نحوه این کار آشنا نیستید میتونید آموزش Runtime Permission رو ببینید .
به دست آوردن آدرس فولدر های public در اندروید مثل فولدر Picture:
برای به دست آوردن آدرس این پوشه ها میتونید از این کد استفاده کنید :
1 |
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURE) |
مشکل ()Environment.getExternalStorageDirectory در دریافت آدرس SD Card :
بعضی از برند های گوشی های تلفن همراه مثل سامسونگ اجازه دسترسی مستقیم به کارت حافظه رو نمیدن و متد ()Environment.getExternalStorageDirectory
فقط آدرس حافظه داخلی رو به ما میده . پس چطور باید داخل کارت حافظه اطلاعاتمون رو ذخیره کنیم ؟ اگه برنامه ما نیاز به این داشته باشه که اطلاعات با حجم بالایی ذخیره کنه و حافظه داخلی گوشی کاربر هم فضای کافی نداشته باشه باید چه کنیم ؟ اگه به کاربر این قابلیت رو بدیم که فضای ذخیره سازی برنامه ما رو، روی کارت حافظه قرار بده ، باعث رضایت بیشتر ایشون از برناممون نخواهیم بود ؟ اگه نیاز به کپی فایلی از حافظه داخلی به حافظه خارجی به صورت برنامه نویسی داشتیم با این وضعیت چه کنیم ؟
اگه دنبال حل این مشکل هستید و نیاز دارید که به کارت حافظه خارجی دسترسی داشته باشید میتونید ویدئویی که در این مورد تهیه کردم رو ببینید . تو این ویدئوی 25 دقیقه ای یاد میگیرید که چطوری اجازه دسترسی به کارت حافظه خارجی رو از کاربر بگیرید. که با روش های معمولی ای که بالا گفتم و در بیشتر سایت ها و منابع آموزشی هم موجوده ، امکان پذیر نیست .
حجم فایل : 60 مگابایت
امیدوارم این آموزش براتون مفید واقع بشه . اگه سوال و پیشنهادی داشتید میتونید در قسمت نظرات بیان کنید .
تعداد فروش : 8 |
سلام روز بخیر
از آموزش مفیدتون ممنونم
عذر خواهم سوال بنده اینه که چطور میشه از فایلی رو انتخاب کرد و اون رو جای دیگه ای کپی کرد؟
سلام .
میتونید آموزش کپی کردن فایل رو مشاهده کنید