بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
چسباندن دیتابیس به پیج نصب apk
چطوری میشه پس از ایجاد دیتابیس و ارتباط ap با ان هنگام نصب بر روی گوشی دیتابیس ساخته شده نیز منتقل شود.(ساده بگم دیتابیس ساخته شده به همراه فایل نصب apk باشه)
0
0
یادم رفت بگم دیتابیس local و بصورت دستی هم نمیخوام کپی بشه ممنون (10 سال پیش)
0
0
یا باید دستورات SQL رو برای تک تک رکورد ها بزنید ، یا فایل دیتابیس رو جدا قرار بدید یا آنلاین دیتابیس رو از سرور بخونید . (10 سال پیش)
0
0
ممنون راه دیگه ای وجود نداره .... آخه این برنامه یک دفتر تلفن که دیتابیسش آماده و پر شده فقط میخوایم هنگام نصب روی هر گوشی دیتابیس رو از مسیر پیش فرض بخونه (10 سال پیش)
0
0
میتونید دیتابیس رو داخل Folder Assets قرار بدید که بهمراه برنامه باشه . (10 سال پیش)
0
0
بازم ممنون میشه یکم بیشتر توضیح بدین بعدش فایل رو چطوری بخونم یا اینکه باید ابتدا تو مسیر مورد نظر کپی کنم بعدش بخونم؟؟؟ (10 سال پیش)
برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال
mars120
10 سال پیش
+1
0
برای انتقال و خواندن دیتابیس از پوشه assets ابتدا دیتابیس رو به پوشه assets انتقال بدید و پسوندش رو حذف کنید سپس یک کلاس به نام دیتابیس مطابق کد های زیر ایجاد کنید ( اسم دیتابیس من database هست که شما میتونید تغییرش بدید )،مسیرش هم بهتره که همین مسیری که گذاشتم باشه تا با هر بار حذف برنامه دیتابیس هم پاک بشه که بعدا موقع آپدیت دیتابیس مشکل ایجاد نشه
public class database extends SQLiteOpenHelper {
public final String sdcard = Environment.getExternalStorageDirectory().getAbsolutePath();
public final String path = sdcard + "/Android/data/نام پکیج/databases/";
public final String Name = "database";
public SQLiteDatabase mydb;
private final Context mycontext;
public database(Context context) {
super(context, "database", null, 1);
mycontext = context;
}
@Override
public void onCreate(SQLiteDatabase arg0) {
new File(path).mkdirs();
}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
}
public void useable() {
boolean checkdb = checkdb();
if (checkdb) {
} else {
this.getReadableDatabase();
try {
copydatabase();
}
catch (IOException e) {
}
}
}
public void open() {
mydb = SQLiteDatabase.openDatabase(path + Name, null, SQLiteDatabase.OPEN_READWRITE);
}
@Override
public void close() {
mydb.close();
}
public boolean checkdb() {
SQLiteDatabase db = null;
try {
db = SQLiteDatabase.openDatabase(path + Name, null, SQLiteDatabase.OPEN_READONLY);
}
catch (SQLException e) {
}
return db != null ? true : false;
}
public void copydatabase() throws IOException {
OutputStream myOutput = new FileOutputStream(path + Name);
byte[] buffer = new byte[1024];
int lenght;
InputStream myInput = mycontext.getAssets().open(Name);
while ((lenght = myInput.read(buffer)) > 0) {
myOutput.write(buffer, 0, lenght);
}
myInput.close();
myOutput.flush();
myOutput.close();
}
//محل نوشتن متدها
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .