文件列表文件列表request.execute()不起作用

时间:2014-01-22 09:37:34

标签: android google-drive-api

我想列出我的谷歌累计所拥有的所有文件与我的应用程序,我尝试了实际来自网站的以下代码,但是,行中的错误“FileList fileList = request.execute(); “,它说方法execute()未定义类型Drive.Files.List,我不知道如何解决它。

private void getDriveContents()
{
    Thread t = new Thread(new Runnable() 
{
    @Override
    public void run() 
    {
                        com.google.api.services.drive.Drive.Files f1 = mService.files();
            Files.List request = null;

            do 
            {
                try 
                { 
                    request = service.files().list().setQ("trashed=false");
                    FileList fileList = request.execute();

                    mResultList.addAll(fileList.getItems());
                    request.setPageToken(fileList.getNextPageToken());
                } catch (UserRecoverableAuthIOException e) {
                    startActivityForResult(e.getIntent(), REQUEST_AUTHORIZATION);
                } catch (IOException e) {
                    e.printStackTrace();
                    if (request != null)
                    {
                        request.setPageToken(null);
                    }
                }
            } while (request.getPageToken() !=null && request.getPageToken().length() > 0);

            populateListView();
    }
});
t.start();
}

2 个答案:

答案 0 :(得分:0)

我相信您的“请求”类型不正确。它应该是FileList,而不是File.List

答案 1 :(得分:0)

我没有在争论你所看到的。我只是试图帮助,因为我有类似的代码运行和测试。这是我的“类ListDownFromGOODrive扩展AsyncTask ......”的片段。

import com.google.api.services.drive.model.FileList;
...
.... a lot of code here
... 
GoogleAccountCredential _crd;
Drive                   _svc;   
FileList                _gooLst;
Intent                  _it;
String                  _rqst;
...
... a lot of code here
...
@Override protected Integer doInBackground(Void... nothing) {
  try {
    if (_crd == null)
      _crd = GoogleAccountCredential.usingOAuth2(_ctx,Arrays.asList(DriveScopes.DRIVE_FILE));
    if (_svc == null)
      _svc = new Drive.Builder       
                   (AndroidHttp.newCompatibleTransport(), new GsonFactory(), _crd).build();
    if (_crd.getSelectedAccountName() == null) {
      _it = _crd.newChooseAccountIntent();  
      return REQ_EMAIL;
    }
    _gooLst = _svc.files().list().setMaxResults(MAX_DOWN).setQ(_rqst)
             .setFields("items(id,title,description,downloadUrl,thumbnailLink)").execute();
  } 
  catch (UserRecoverableAuthIOException e){ //Log.d("atn", "LD URAIO Except->REQ_AUTH");
    try { _it = e.getIntent(); } catch (Exception e1) {return ERROR;}
    return REQ_AUTH;
  } 
  catch (IOException e)                   { return ERROR; } 
  catch (Exception e)                     { return ERROR; }
  return  GOOD;
}

它返回GOOD,ERROR,REQ_AUTH(orization)或REQ_EMAIL(account)