gpt4 book ai didi

android - 如何使用android google drive sdk将文件上传到google drive文件夹

转载 作者:搜寻专家 更新时间:2023-11-01 08:35:06 25 4
gpt4 key购买 nike

使用下面的代码 fragment ,我可以访问我已经用同一个应用程序创建的文件夹。我正在使用 'com.google.android.gms:play-services-drive:9.0.0' 库并引用 google drive sample on github .使用示例 CreateFolderInFolderActivity.java我能够在现有文件夹中创建文件夹。我不需要创建文件夹,而是需要在现有文件夹中创建一个文件。

public class CreateFileInsideFolderActivity  extends BaseDemoActivity {

private static final String TAG = "CreateFileActivity";

@Override
public void onConnected(Bundle connectionHint) {
super.onConnected(connectionHint);

Drive.DriveApi
.fetchDriveId(getGoogleApiClient(), "0B_cMuo4-XwcAZ3IzSG1jajFlWk0")
.setResultCallback(idCallback);
}

final ResultCallback<DriveApi.DriveIdResult> idCallback = new ResultCallback<DriveApi.DriveIdResult>() {
@Override
public void onResult(DriveApi.DriveIdResult result) {

if (!result.getStatus().isSuccess()) {
showMessage("Cannot find DriveId. Are you authorized to view this file?");
return;
}

DriveId driveId = result.getDriveId();

//showMessage("driveid" + driveId.getResourceId());

final DriveFolder folder = driveId.asDriveFolder();

//
// How to upload a file to this folder
//





}

最佳答案

感谢@pinoyyid

我从 wiki.workassis 找到了一个例子,我在这里分享。如果有人有更好的解决方案,请与我分享

@Override
public void onConnected(Bundle connectionHint) {
super.onConnected(connectionHint);

Drive.DriveApi.newDriveContents(getGoogleApiClient()).setResultCallback(driveContentsCallback);
}

在结果回调中

final private ResultCallback<DriveApi.DriveContentsResult> driveContentsCallback = new ResultCallback<DriveApi.DriveContentsResult>() {

@Override
public void onResult(DriveApi.DriveContentsResult result) {

if (!result.getStatus().isSuccess()) {
showMessage("Error while trying to create new file contents");
return;
}

final DriveContents driveContents = result.getDriveContents();

// Perform I/O off the UI thread.
new Thread() {
@Override
public void run() {

OutputStream outputStream = driveContents.getOutputStream();
try {
InputStream inputStream = getContentResolver().openInputStream(imageUri);

if (inputStream != null) {
byte[] data = new byte[1024];
while (inputStream.read(data) != -1) {
outputStream.write(data);
}
inputStream.close();
}

outputStream.close();
} catch (IOException e) {
Log.e(TAG, e.getMessage());
}

MetadataChangeSet changeSet = new MetadataChangeSet.Builder()
.setTitle("New file")
.setMimeType("image/jpg")
.setStarred(true).build();


DriveApi.DriveIdResult exFolderResult = Drive.DriveApi
.fetchDriveId(getGoogleApiClient(), ExistingFolderID)
.await();

if (!exFolderResult.getStatus().isSuccess()) {
showMessage("Cannot find DriveId. Are you authorized to view this file?");
return;
}

DriveId driveId = exFolderResult.getDriveId();
//showMessage("driveid" + driveId.getResourceId());
final DriveFolder folder = driveId.asDriveFolder();


// create a file on root folder
folder.createFile(getGoogleApiClient(), changeSet, driveContents)
.setResultCallback(fileCallback);

}
}.start();

}
};

我正在使用默认的文件选择器来获取图片 url

引用:http://wiki.workassis.com/google-drive-android-api-upload-file-to-existing-folder/

对于文件选择器:http://wiki.workassis.com/android-create-a-file-picker/

关于android - 如何使用android google drive sdk将文件上传到google drive文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37385591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com