相关疑难解决方法(0)

使用Google Drive备份和还原SQLite数据库

我已经设法在SD卡上创建我的数据库备份并从那里恢复,但意识到我的备份的目的是确保数据的安全性,在这种情况下,如果物理设备本身损坏,丢失或自发地燃烧SD卡上的备份.因此,在这种情况下将备份放在与原始备份相同的位置,坦率地说,无法实现备份的目的.

因此,我想使用Google Drive作为保存db文件更安全的地方,而且它是免费的.我已经看了谷歌的快速启动演示,我工作得很好.但我仍然不知道如何为我的案子做到这一点.

我发现了一些代码,但仍然使用了一些弃用的方法,到目前为止,我只是在省略不推荐使用的区域时设法运行它,但它只在我的Google云端硬盘中创建了一个空白的二进制文件,所以我认为不推荐使用的区域是实际上传数据库备份内容的地方.如果有人可以提供帮助,那将非常感激.

我会把它留在下面,万一有人可以用它来更好地向我解释.我还在下面标记了已弃用的方法,它已接近尾声.

public class ExpectoPatronum extends Activity implements ConnectionCallbacks, OnConnectionFailedListener {

private static final String TAG = "MainActivity";
private GoogleApiClient api;
private boolean mResolvingError = false;
private DriveFile mfile;
private static final int DIALOG_ERROR_CODE =100;
private static final String DATABASE_NAME = "demodb";
private static final String GOOGLE_DRIVE_FILE_NAME = "sqlite_db_backup";

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Create the Drive API instance
    api = new GoogleApiClient.Builder(this).addApi(Drive.API).addScope(Drive.SCOPE_FILE).
            addConnectionCallbacks(this).addOnConnectionFailedListener(this).build();
}

@Override
public void onStart() {
    super.onStart();
    if(!mResolvingError) …
Run Code Online (Sandbox Code Playgroud)

android google-drive-api google-drive-android-api

14
推荐指数
1
解决办法
2万
查看次数

谷歌驱动器备份和恢复Android应用程序的数据库和共享首选项

我需要创建我的应用程序的备份,其中包括使用Google驱动器API创建2个数据库的备份以及共享首选项.我能够为应用程序完成身份验证,并使用以下代码在Drive中创建一个新文件夹:

public class MainActivity2 extends BaseDemoActivity {

DriveId folderId;

@Override
public void onConnected(Bundle connectionHint) {
    super.onConnected(connectionHint);
    MetadataChangeSet changeSet = new MetadataChangeSet.Builder().setTitle("New folder").build();
    Drive.DriveApi.getRootFolder(getGoogleApiClient())
    .createFolder(getGoogleApiClient(), changeSet)
    .setResultCallback(folderCreatedCallback);
}

ResultCallback<DriveFolderResult> folderCreatedCallback = new ResultCallback<DriveFolderResult>() {
    @Override
    public void onResult(DriveFolderResult result) {
        if (!result.getStatus().isSuccess()) {
            showMessage("Error while trying to create the folder");
            return;
        }
        folderId = result.getDriveFolder().getDriveId();
        showMessage("Created a folder: " + result.getDriveFolder().getDriveId());
    }
};
}
Run Code Online (Sandbox Code Playgroud)

我使用插入文件

fileUri = Uri.fromFile(new java.io.File(Environment.getDataDirectory().getPath()
                        + "/data/com.example.myapp/databases/mydb.db"));

                java.io.File fileContent = new java.io.File(fileUri.getPath());

                FileContent mediaContent = new FileContent(getMimeType("db"), …
Run Code Online (Sandbox Code Playgroud)

backup android database-backups sharedpreferences google-drive-api

6
推荐指数
1
解决办法
9637
查看次数