我試圖使用查詢在Google雲端硬盤應用程序文件夾中獲得IDriveResource,但我在使用類型轉換時遇到了問題。 這裏是我到目前爲止的代碼:如何使用Drive API在Google Drive中查詢Xamarin.Android的IDriveResource?
using (IDriveFolder appFolder = DriveClass.DriveApi.GetAppFolder(googleApiClient))
using (QueryClass query = new QueryClass.Builder().AddFilter(Filters.Eq(SearchableField.Title, MY_FILE_NAME)).Build())
using (var queryResult = await appFolder.QueryChildrenAsync(googleApiClient, query))
using (var driveItem = queryResult.MetadataBuffer)
{
using (var driveFile = await driveItem.DriveId.AsDriveFile().OpenAsync(googleApiClient, DriveFile.ModeWriteOnly, null))
using (var outputStream = driveFile.DriveContents.OutputStream)
using (var writer = new OutputStreamWriter(outputStream))
using (var changeSet = new MetadataChangeSet.Builder()
.SetLastViewedByMeDate(new Java.Util.Date())
.Build())
{
writer.Write(MY_TEXT);
writer.Close();
driveFile.DriveContents.Commit(googleApiClient, changeSet);
}
}
但是,編譯器不driveItem認識驅動器Id財產。我需要輸入driveItem,但編譯器不會接受任何選項。如果它接受driveItem聲明(如MetadataBuffer),它將不具有DriveId屬性。如果我嘗試使用IDriveFile或IDriveResource,它將不會接受變量聲明中的強制轉換。
我確實有試圖driveItem傳遞給像一個方法,當同樣的問題:
private async Task<bool> saveDriveItem(???? driveItemToSave)
{
...
}
我不能使用這種方法,因爲我無法找到合適的? ??鍵入即可使用。
任何想法?
謝謝。
感謝。我忘了緩衝區可以帶來多個文件。 – Dpedrinha
@Dpedrinha沒問題... – SushiHangover
SushiHangover這裏真的很奇怪。我的應用程序只使用一個xml文件。如果文件不存在(queryResult.MetadataBuffer.Count == 0),它會創建一個。但每次啓動我的應用程序時,它都會創建一個新應用程序。 queryResult始終返回0 MetadataBuffer.Count。您是否知道在Android設備上進行調試時可能會發生的任何已知錯誤? – Dpedrinha