-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