آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

چسباندن دیتابیس به پیج نصب apk

tiam  10 سال پیش  10 سال پیش
0 0

چطوری میشه پس از ایجاد دیتابیس و ارتباط 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();
    }
//محل نوشتن متدها
}
0 0
ممنون از توجه شما ایشالله جواب بده (10 سال پیش)

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