我想备份和恢复我的sqlite数据库。为此,我使用谷歌驱动器API。我使用了这个this演示代码。一切都很完美。我可以上传和下载我的数据库,直到我卸载我的应用程序。
但后来我注意到一种奇怪的行为。方案如下
卸载我的应用程序
重新安装并尝试从驱动器下载文件。
此时我无法从驱动器中找到任何文件....搜索总是返回0 ...我不知道为什么。如果我不卸载应用程序并且只是清除数据,那么所有工作都是完美的。
以下是我上传的代码....
public boolean createFile() {
DriveId dId = null;
String mimeType = MimeTypeMap.getSingleton().getExtensionFromMimeType("db");
if (mGoogleApiClient != null && mGoogleApiClient.isConnected())
try {
DriveFolder pFldr = Drive.DriveApi.getAppFolder(mGoogleApiClient);
if (pFldr != null) {
File file = context.getDatabasePath(db.getDatabaseName());
DriveContents cont = file2Cont(null, file);
MetadataChangeSet meta = new MetadataChangeSet.Builder().setTitle(Google_Drive_File).
setMimeType(mimeType).build();
DriveFolder.DriveFileResult r1 = pFldr.createFile(mGoogleApiClient, meta, cont).await();
DriveFile dFil = r1 != null && r1.getStatus().isSuccess() ? r1.getDriveFile() : null;
if (dFil != null) {
DriveResource.MetadataResult r2 = dFil.getMetadata(mGoogleApiClient).await();
if (r2 != null && r2.getStatus().isSuccess()) {
dId = r2.getMetadata().getDriveId();
}
}
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
return dId == null ? false : true;
}
请帮助我....
答案 0 :(得分:0)
好吧,我已经解决了....我没有得到文件,因为我在auth证书中使用调试密钥。一旦我通过发布更改我的调试密钥,所有工作都会完美。