2

我試圖通過Google Drive Android API(而不是Web API)訪問Google Drive中的數據。什麼是瘋狂的,當我使用這個訪問時,我只能訪問磁盤的一小部分(只有一個文件夾和一些文件)。我試圖使用示例代碼,但結果是一樣的。任何想法可能是錯的?授權Google Drive Android API

Authorizing

@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstance); 

mGoogleApiClient = new GoogleApiClient.Builder(this) 
     .addApi(Drive.API) 
     .addScope(Drive.SCOPE_FILE) 
     .addConnectionCallbacks(this) 
     .addOnConnectionFailedListener(this) 
     .build(); 
} 

@Override 
protected void onStart() { 
super.onStart(); 
mGoogleApiClient.connect(); 
} 

Reading content

@Override 
public void onConnected(Bundle connectionHint) { 
    super.onConnected(connectionHint); 
    Query query = new Query.Builder() 
      .addFilter(Filters.or(
        Filters.eq(SearchableField.MIME_TYPE, "text/html"), 
        Filters.eq(SearchableField.MIME_TYPE, "text/plain"))) 
      .build(); 
    Drive.DriveApi.query(getGoogleApiClient(), query).setResultCallback(metadataCallback); 
} 

    ResultCallback<MetadataBufferResult> childrenRetrievedCallback = new 
     ResultCallback<MetadataBufferResult>() { 
    @Override 
    public void onResult(MetadataBufferResult result) { 
     if (!result.getStatus().isSuccess()) { 
      showMessage("Problem while retrieving files"); 
      return; 
     } 
     mResultsAdapter.clear(); 
     mResultsAdapter.append(result.getMetadataBuffer()); 
     showMessage("Successfully listed files."); 
    } 
}; 

回答

3

由於API文檔:

注:谷歌雲端硬盤Android API目前只支持drive.filedrive.appfolder授權範圍。如果您的應用程序需要其他權限或Drive Android API尚未提供的功能,則必須使用Google API Java Client。

我認爲你需要drive授權,但是這還沒有準備好用於Android API。

+0

謝謝,我沒有注意到這一點。它使這個API幾乎沒用:( – Michal

+0

這個狀態是否改變了?使用Java客戶端可能是解決這個問題的方法,但這是一個痛苦。 – toidiu