مشکل تشخیص مسیر کارت حافظه یا حافظه گوشی برای ذخیره دیتابیس (حل شد)
سلام به دوستان عزیزم.
طبق آموزش استاد فایل دیتابیس روی امولاتور درست ایجاد میشه ولی روی گوشی برنامه کرش میکنه و فایلی ایجاد نمیشه.
سرچ کردم دیدم توی گوشی های مختلف مسی های مختلفی برای حافظه گوشی و رم وجود داره. مثل این ها
“/mnt/shell/emulated/0”
“/storage/emulated/0”
“/HWUserData”
“/mnt/sdcard0”
“/mnt/sdcard1”
“/storage/sdcard0”
“/storage/sdcard1”
“/storage/extSdCard”
خوب حالا ما چیکار کنیم که موقع ساخت دیتابیس به مشکل نخوریم ؟! من همه این ها رو هم امتحان کردم ولی برنامه روی گوشی کرش میکنه. روی گوشی نمیتونم لوگ بگیرم ولی با توست متوجه شدم بفهمم مسیر کارت حافظه داخلی اینه : /sdcard0
خوب پیشنهاد شما چیه ؟
تاپیک های دیگه رو خوندم و روش های مختلف رو امتحان کردم ولی جواب نگرفتم.
روش ایجاد دیتابیس من با استاد فرق میکنه، من اینجوری میسازم :
private static final String DB_NAME = "/mnt/sdcard/barnameh/database.db";
public DatabaseHelper(Context context, String name, CursorFactory factory, int version) { super(context, DB_NAME, factory, version); }
@Override public void onCreate(SQLiteDatabase db) { // Create a database table // if not exists String createQuery = " CREATE TABLE if not exists " + TABLE_NAME + " (_id integer primary key autoincrement," + TI + " , " + NO + " , " + CO + ", " + LI + " );"; db.execSQL(createQuery); }
این روی امولاتور درست کار میکنه !
خوب، طبق این لینک من این تغییرات رو انجام دادم ولی همچنان روی گوشی با کرش مواجه میشم:
static String completePath = "/barnameh/database.db";
private static final String DB_NAME = Environment.getExternalStorageDirectory() + "/" + completePath;
طبق لینک این کار هم باید انجام بدم ولی نمیدونم کجا و چطوری ! و چرا ؟!؟
File file = new File(completePath);
Uri imageUri = Uri.fromFile(file);
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .