ذخیره سازی داده ها در دستگاه
ما همیشه از getExternalStrogeDirectory استفاده می کنیم ، اما اگه یه وقت دستگاه فقط حافظه داخلی داشته باشه ، در دستگاه هایی که حافظه ی دستگاه رو به عنوان SD نمیشناسه ، آیا اتوماتیک مسیر حافظه ی داخلی داده میشه ، یا اینکه برنامه کرش میکنه ؟ ، یعنی نیازی نیست اول چک کنیم sd داره یا نه ، و اگه نداشت ، حافظه ی دستگاه رو بگیریم ؟!
من یه نکسوس دارم که حافظه خارجی نمیخوره ، یعنی رژیم داره ، هیچ مشکلی با کد بالا نداره ، برعکس اونایی که حافظه خارجی میخورن ممکنه به مشکل بخورن چون ممکنه الان تو شکم گوشی مموری نباشه ، بخاطر همین باید قبلش چک کنی که mount شده یا نه!
ممنون از پاسخ هاتون
یکم گشتم دنبال این جور دستگاهی ، یه تبلت چینی (GLX) پیدا کردم ، برنامه رو روش اجرا کردم ، ارور داد + کرش :|
بعد اومدم دیدم یه چیزی به اسم getExternalStorageState داره ، سرچ کردم تو documention ها نوشته بود اگه حالت media mounted باشه ، یعنی فضایی برای ذخیره سازی هست ، در غیر اینصورت یعنی فضای ذخیره سازی در دستگاه وجود نداره ، پس طبق مستندات این دستور رو نوشتم
public static final Boolean isSDMounted =
Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
یکم گشتم. ظاهرا رو بعضی گوشی ها اون روش معمولمون جواب نمیده.
چیزی که دستگیرم شد ظاهرا دسترسی به حافظه داخلی یکم متفاوته
مثلا طرف با کد زیر میگفت یه پوشه ساختم روی حافظه داخلی :
File directory = getDir("template", Context.MODE_PRIVATE);
البته توی خود android developer چیز دیگه ای نوشته بود (Using the Internal Storage )
به هر حال چون الان به گوشی مثل GLX دسترسی ندارم نمیتونم تستش کنم ولی اگه تو دسترسی داشتی یه تستی بکن خبرمون کن ;)
اینم لینک اون سواله که اینو نوشته بود : copying files from sdcard to android internal storage directorynternal-storage-directory
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .