بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

ایراد در انتقال فایلهای دیتابیس از assets به حافظه داخلی در API بالاتر از 21

مدیریت گفتگو
m.miandari 9 سال پیش
آخرین تغییر: 9 سال پیش

من سه تا فایل دیتابیس در فولدر Asset دارم و میخوام در ابتدای شروع به کار اونها رو به حافظه داخلی کپی کنم .
با آموزشهای استاد و استفاده از کلاس HelperIO این کار رو انجام میدم .
تو نسخه اندروید 4.1 و 5 امتحان کردم بدون مشکل انجام میشه ولی تو ورژنهای بالاتر مثل 6 فورس کلوز میده 

  context = getApplicationContext();

pref = PreferenceManager.getDefaultSharedPreferences(context);

packageName = context.getPackageName();

DIR_APP = DIR_SDCARD + "/android/data/" + packageName + "/file/";
new File(DIR_APP).mkdirs();

AssetManager assetManager = context.getAssets();
InputStream inputStream;
try {
File file = new File(DIR_APP + "/Zanjan.sqlite");
if ( !file.exists()) {
inputStream = assetManager.open("Zanjan.sqlite");
HelperIO.copyFile(inputStream, DIR_APP + "/Zanjan.sqlite");
databaseZ = SQLiteDatabase.openDatabase(DIR_APP + "/Zanjan.sqlite", null, 0);
}
if (file.exists()) {

databaseZ = SQLiteDatabase.openDatabase(DIR_APP + "/Zanjan.sqlite", null, 0);
}

File file1 = new File(DIR_APP + "/License.sqlite");
if ( !file1.exists()) {
inputStream = assetManager.open("License.sqlite");
HelperIO.copyFile(inputStream, DIR_APP + "/License.sqlite");
databaseL = SQLiteDatabase.openDatabase(DIR_APP + "/License.sqlite", null, 0);
}
if (file1.exists()) {

databaseL = SQLiteDatabase.openDatabase(DIR_APP + "/License.sqlite", null, 0);
}

File file2 = new File(DIR_APP + "/Database.sqlite");
if ( !file2.exists()) {
inputStream = assetManager.open("Database.sqlite");
HelperIO.copyFile(inputStream, DIR_APP + "/Database.sqlite");
databaseD = SQLiteDatabase.openDatabase(DIR_APP + "/Database.sqlite", null, 0);
}
if (file2.exists()) {

databaseD = SQLiteDatabase.openDatabase(DIR_APP + "/Database.sqlite", null, 0);
}

File file3 = new File(DIR_APP + "/zanjan_village.sqlite");

if ( !file3.exists()) {
inputStream = assetManager.open("zanjan_village.sqlite");
HelperIO.copyFile(inputStream, DIR_APP + "/zanjan_village.sqlite");
databaseV = SQLiteDatabase.openDatabase(DIR_APP + "/zanjan_village.sqlite", null, 0);
}
if (file3.exists()) {

databaseV = SQLiteDatabase.openDatabase(DIR_APP + "/zanjan_village.sqlite", null, 0);
}

}

catch (IOException e) {
e.printStackTrace();
}

}

نظرات

Criss 9 سال پیش
یک مورد که در مورد ورژن باید بررسی بشه این هست که شما باید از قسمت Setting پرمیزن برنامه خودتون رو چک کنید که قابلیت write رو کارت حافظه رو داشته باشه

هنوز پاسخی ثبت نشده است


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .