2016-11-10 46 views
2

由於缺少Google Drive API的文檔,我非常沮喪,而且我使用的Xamarin使事情變得更糟。我已經安裝了Xamarin.GooglePlayServices.Drive軟件包,它工作正常。所以快速轉到我的問題,我查詢文件,並可以成功地獲得他們的DriveID我的DriveFile對象沒有open()方法

所以我的代碼是:

DriveFile file = DriveId.AsDriveFile(); 
//And here I want to use the method file.Open(...); 

的唯一方法DriveFile對象有提供給它是默認例如Object方法ToString()Equals(),GetType()GetHashCode()。我做錯了什麼,爲什麼我不能訪問這個方法,因爲其他人訪問它沒有問題。

谷歌表示,我必須使用它:https://developers.google.com/drive/android/files

這傢伙使用Xamarin具有使用方法沒有問題:Xamarin: Unsure what to cast using DriveFile.Open

任何幫助將不勝感激。我也可以訪問文件的元數據(如果有幫助的話)(使用其他方法下載)

+0

驅動器庫只是幫助您訪問存儲在驅動器上的文件。我懷疑它會有一個開放的方法。您可能將不得不使用元數據下載它,然後編寫自己的開放方法。 – DaImTo

+0

感謝您的快速回復@DalmTo。那麼,根據文檔,API中應該有一個Open方法(第一個鏈接)。如果Xamarin庫沒有綁定該方法(如果我沒有遇到第二個鏈接,我會接受),那麼它不會存在的唯一原因是。清楚的是,open方法不會打開文件流,而是根據文檔「檢索本地同步的文件資源並將其打開,如果文件未與本地存儲同步,它將從Drive服務中檢索文件並返回一個DriveContents資源「,然後該應用讀取 – CrimsonSage

+0

您的第一個鏈接是android不是Xamarin。我不會用Xamarin做很多事情,但對我的回憶來說,這是兩件不同的事情。我使用的Xamarin庫基本上是.Net客戶端庫。可能會更好地等待擁有更多Xamarin知識的人。有趣的是,你也可以使用android庫來玩。 – DaImTo

回答

-1

我找到了解決我的問題的方法。這是一個令人困惑的類名稱。 DriveFile是操作類型的枚舉類的名稱。 IDriveFile接口是包含Open方法的實際接口。因此,當我將該值存儲爲var時,我可以獲得Open方法。

var file = onlineFiles[i].DriveId.AsDriveFile(); 
file.Open(_googleApiClient, DriveFile.ModeReadOnly, null).SetResultCallback(this);