2

我正在使用Drive API,開始非常沮喪。我正嘗試使用查詢來根據其名稱搜索文件/文件夾。這個演示有一個很好的例子,如何做到這一點:https://github.com/googledrive/android-demos/blob/master/src/com/google/android/gms/drive/sample/demo/QueryFilesWithAInTitleActivity.java如何使用DriveApi.MetadataBufferResult?

但我不想將數據添加到ListView,我只想從MetadataBufferResult直接提取信息(標題和ID,所以我可以工作跟他們)。但是我看過的每個例子都只是做這個ListView的事情,而我一直沒能找到一種方法從MetadataBufferResult中提取任何信息或者找到好的文檔。

基本上,我希望能夠做到這一點(從上面鏈接的演示採取代碼):

final private ResultCallback<DriveApi.MetadataBufferResult> metadataCallback = 
      new ResultCallback<DriveApi.MetadataBufferResult>() { 
       @Override 
       public void onResult(DriveApi.MetadataBufferResult result) { 
        if (!result.getStatus().isSuccess()) { 
         showMessage("Problem while retrieving results"); 
         return; 
        } 

        //I haven't been able to find a way to do this 
        result.getDriveID(); 
        result.getFileTitle(); 
       } 
      }; 

短版:我要搜索某人的硬盤帳戶的根目錄的標題文件「x」,然後讀/寫這個文件。我的問題是,我無法從MetadataBufferResult對象中提取數據,我通過了,我看到的所有示例都使用我不想做的ListView輸出它。

+0

我只想澄清,你使用GDAA,而不是REST API。那麼您正在設備上查看Drive文件存儲? – pinoyyid

+0

Idk什麼是GDAA代表,但我沒有使用REST API。我正在使用我使用GoogleApiClient訪問的Google play服務庫中的Drive API。 @pinoyyid – Zarwan

+0

[GDAA](https://developers.google.com/drive/android/intro)= Google Drive Android Api,[REST](https://developers.google.com/drive/web/about-sdk )= RESTful Api。對不起,它被稱爲'谷歌驅動器Android Api'多年來,他們最近重命名爲'驅動API爲Android' – seanpj

回答

7

試試這個:

public void onResult(MetadataBufferResult rslt) { 
    if (rslt != null && rslt.getStatus().isSuccess()) { 
    MetadataBuffer mdb = null; 
    try { 
     mdb = rslt.getMetadataBuffer(); 
     if (mdb != null) for (Metadata md : mdb) { 
     if (md == null || !md.isDataValid()) continue; 
      md.getTitle(); 
      md.getDriveId(); 
      md.getAlternateLink(); 
      //md.get.....(); 
     } 
    } finally { if (mdb != null) mdb.close(); } 
    } 
} 

型「MD。 ...',你會得到可用的元數據列表。完整的上下文可以發現here

好運

+0

嗨,每當我嘗試做mdb.get(0)或任何索引我得到一個java.lang.IllegalStateException(我在IntelliJ中使用評估代碼片段功能來嘗試) – Zarwan

+0

我現在沒有做GDAA,我只是從上面提到的GitHub演示代碼中拼湊出一段代碼。要恢復它並運行測試我需要太長時間,我相信你可以比我更快地進行測試。 – seanpj

+0

會給你設置代碼的幫助嗎?我試着調試它,但無法獲得任何地方。我不確定問題是什麼。 – Zarwan