تهیه کپی از بانک اطلاعاتی در اندروید استادیو

4/19/2016 MVC
1309

یه مدت قبل به نرم افزار اندروید دستم رسید که به راحتی میشد با استفاده از یک دکمه یک کپی از بانک اطلاتی در دستگاه اندروید داشت ، که میشد به راحتی در نرم افزار های sqlight استفاده کرد.

 

کد موجود در .mainactivity.xml

 <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:text="Export Database"
        android:id="@+id/Export_Database_btn"
        android:layout_gravity="center_horizontal"
        android:onClick="ExportDb"/>

کد mainActivity.java

 

 public void ExportDb(View view)
    {
        File sd = Environment.getExternalStorageDirectory();
        File data = Environment.getDataDirectory();
        FileChannel source=null;
        FileChannel destination=null;
        String currentDBPath = "/data/"+ getPackageName() +"/databases/"+"MMH.db";
        String backupDBPath = "mmh";
        File currentDB = new File(data, currentDBPath);
        File backupDB = new File(sd, backupDBPath);
        try {
            source = new FileInputStream(currentDB).getChannel();
            destination = new FileOutputStream(backupDB).getChannel();
            destination.transferFrom(source, 0, source.size());
            source.close();
            destination.close();
            Toast.makeText(this, "DB Exported!", Toast.LENGTH_LONG).show();
        } catch(IOException e) {
            Toast.makeText(this,"error in export db...", Toast.LENGTH_LONG).show();
            e.printStackTrace();
        }
    }

در متن بالا getPackageName نام نرم افزار را میگیرد  ، البته به راحتی میتوان تاریخ روز را به خروجی اضافه کرد. اما باید در نظر داشت که برای بازگشت اگر لازم باشد بازیابی را هم با استفاده از نام انجام دهید نام طولانی اذیت کننده خواهد بود.