-1
我需要将视频的链接上传到谷歌驱动器,以便我可以在网络浏览器中打开视频,我可以将视频文件上传到谷歌驱动器,并可以使用以下代码获取文件ID :如何在Android中使用Drive API将上传文件的网址链接到谷歌驱动器?
private void UploadFile(final DriveId driveId)
{
Drive.DriveApi.newDriveContents(mGoogleApiClient).setResultCallback(new ResultCallback<DriveApi.DriveContentsResult>() {
@Override
public void onResult(@NonNull DriveApi.DriveContentsResult driveContentsResult)
{
if (!driveContentsResult.getStatus().isSuccess())
{
Log.e(TAG, "Error while trying to create new file contents");
return;
}
OutputStream outputStream = driveContentsResult.getDriveContents().getOutputStream();
Toast.makeText(context, "Uploading to drive....", Toast.LENGTH_LONG).show();
final File theFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/VideoFiles/testVideo.mkv");
try
{
FileInputStream fileInputStream = new FileInputStream(theFile);
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = fileInputStream.read(buffer)) != -1)
{
outputStream.write(buffer, 0, bytesRead);
}
} catch (IOException e1)
{
Log.i(TAG, "Unable to write file contents.");
}
MetadataChangeSet changeSet = new MetadataChangeSet.Builder().setTitle(theFile.getName()).setMimeType("video/mkv").setStarred(false).build();
DriveFolder folder = driveId.asDriveFolder();
folder.createFile(mGoogleApiClient, changeSet, driveContentsResult.getDriveContents()).setResultCallback(new ResultCallback<DriveFolder.DriveFileResult>() {
@Override
public void onResult(@NonNull DriveFolder.DriveFileResult driveFileResult)
{
if (!driveFileResult.getStatus().isSuccess())
{
Log.e(TAG, "Error while trying to create the file");
return;
}
Log.v(TAG, "Created a file: " + driveFileResult.getDriveFile().getDriveId());
}
});
}
});
}
我尝试使用下面的代码来获取视频网址:
DriveFile file = Drive.DriveApi.getFile(googleApiClient,driveId);
DriveResource.MetadataResult mdRslt = file.getMetadata(googleApiClient).await();
if (mdRslt != null && mdRslt.getStatus().isSuccess()) {
String link = mdRslt.getMetadata().getWebContentLink();
Log.d("LINK", link);
}
但后来我得到了“无法解析符号‘googleApiClient’ 任何建议,请
这是因为'没有定义googleApiClient'。您应该像使用代码中的其他任何地方一样使用'mGoogleApiClient'。 –
感谢您的重播,但是我注意到我从driveFileResult.getDriveFile()。getDriveId()获得的文件ID没有完成:“DriveId:CAESABiwayCK16yy6VAoAA ==”这对我来说很奇怪?如果我有它正确的,那么我可以通过添加一些字符串开始https://drive.google.com/......文件ID ..... –
这里是一个线索。您的代码显示“上传到驱动器....”,但您使用的是GDAA,因此您不会上传到云端硬盘。你所做的只是在本地保存文件。一段时间后,Play Services会将您的文件同步到云端硬盘。 – pinoyyid