我想使用Google Driveasserver来存储应用程序数据。所以,我已将所有数据写入文件,然后将该文件上传到Drive。如何在Google云端硬盘上保存应用数据?
代码:
try {
// outputStream.write(bitmapStream.toByteArray());
outputStream.write(text.getBytes());
}
catch (IOException e1) {
Log.i(TAG, "Unable to write file contents.");
}
MetadataChangeSet metadataChangeSet = new MetadataChangeSet.Builder()
.setMimeType("text/txt").setTitle("testfile.txt").build();
IntentSender intentSender = Drive.DriveApi
.newCreateFileActivityBuilder()
.setInitialMetadata(metadataChangeSet)
.setInitialDriveContents(result.getDriveContents())
.build(mGoogleApiClient);
try {
startIntentSenderForResult(intentSender, REQUEST_CODE_CREATOR, null, 0, 0, 0);
}
catch (SendIntentException e) {
Log.i(TAG, "Failed to launch file chooser.");
}
是否有可能,只要将设备连接到互联网,应用程序数据均不会与谷歌云端硬盘中的数据同步? 我读了约谷歌驱动器API,但无法理解:
1)如何同步发生? 2)我们是否可以与Google Drive中的应用文件夹中存储的文件同步? 3)我是否需要将文件写入Google云端硬盘,否则我将不得不将文件保存到某个容器中,Google在连接到互联网时会自行更新(如在iOS中)?
请指导我。
编辑
之前创建的驱动文件,我已经做了检查。
Query query = new Query.Builder()
.addFilter(Filters.eq(SearchableField.MIME_TYPE, "text/plain"))
.addFilter(Filters.eq(SearchableField.TITLE, "appdata.txt")).build();
Drive.DriveApi.query(getGoogleApiClient(), query).setResultCallback(
metadataCallback);
final private ResultCallback<MetadataBufferResult> metadataCallback = new ResultCallback<MetadataBufferResult>() {
@Override
public void onResult(MetadataBufferResult result) {
metadata = result.getMetadataBuffer();
for (int i = 0; i < metadata.getCount(); i++) {
DriveFile file = Drive.DriveApi.getFile(getGoogleApiClient(),
metadata.get(i).getDriveId());
file.trash(getGoogleApiClient());
}
这是一个错误的方式进行?
中的说明问问自己什么时候应用程序与驱动器同步至关重要?它在主页上的暂停,OnCreate上?这是当你连接驱动器。 – SmulianJulian
我无法同步存储在** App文件夹**中的文件。 – megha
@SmulianJulian我可以将文件保存到云端硬盘,但每次创建具有相同元数据的新文件。如何将旧文件与新文件同步? – megha