Google云端硬盘FileList会返回空白项目

时间:2013-08-23 04:53:32

标签: java android google-drive-api

我正在研究谷歌驱动器集成。我已经完成了使用谷歌控制台获取api访问密钥,并完成了oauth2 authentication.i已经使用谷歌日历集成及其工作正常,但当我集成驱动器,想要检索文件列表其返回空。我不知道出了什么问题。以下是我的代码。感谢高级。

public class RetriveFromDrive extends AsyncTask<Void,Void,Void> 
    {
        List<File> result=new ArrayList<File>();
        Files.List request;

        @Override
        protected Void doInBackground(Void... params) {
            try{
            // TODO Auto-generated method stub
            Log.d("Msg", "Do in Background");   
            request=gDrive.files().list();
            Log.d("Msg", request.toString());
            FileList file =request.execute();
            result.addAll(file.getItems());
            names=new ArrayList<String>(); 
            for (File file1 :result) {
                names.add(file1.getTitle());
                Log.d("Names", names.toString());
            }
            }catch(Exception e)
            {
                e.printStackTrace();
            }
            return null;
        }
        @Override
        protected void onPostExecute(Void params) {
            // TODO Auto-generated method stub
            super.onPostExecute(params);
            Log.d("Msg","onPostExecute");
            Log.d("Names",names.toString());


        }`

1 个答案:

答案 0 :(得分:1)

您使用的应用程序拥有的帐户就像普通帐户,但属于应用而非用户。

应用程序拥有的帐户没有特殊权限,并且作为常规帐户,只能访问他们拥有的文件或与他们共享的文档。因此,如果您的常规帐户拥有这些文件,则服务帐户将无法列出这些文件。

您可以使用域范围委派来允许您的应用代表Google Apps域中的其他用户访问文件:

https://developers.google.com/drive/delegation

要允许服务帐户访问我自己的Google云端硬盘中的文件,我必须授予服务帐户电子邮件地址的权限。正确设置权限后,列表将填充允许服务帐户访问的文件。