Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Google驱动器文件列表返回空项_Java_Android_Google Drive Api - Fatal编程技术网

Java Google驱动器文件列表返回空项

Java Google驱动器文件列表返回空项,java,android,google-drive-api,Java,Android,Google Drive Api,我正在进行谷歌驱动器集成。我已经使用谷歌控制台获取了api访问密钥,还使用了oauth2身份验证。我已经使用了谷歌日历集成,其工作正常,但当我集成驱动器时,想要检索文件列表,其返回值为空。我不知道是怎么回事。以下是我的代码。谢谢先进的 public class RetriveFromDrive extends AsyncTask<Void,Void,Void> { List<File> result=new ArrayList<File&g

我正在进行谷歌驱动器集成。我已经使用谷歌控制台获取了api访问密钥,还使用了oauth2身份验证。我已经使用了谷歌日历集成,其工作正常,但当我集成驱动器时,想要检索文件列表,其返回值为空。我不知道是怎么回事。以下是我的代码。谢谢先进的

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());


        }`
公共类从驱动器检索扩展异步任务
{
列表结果=新建ArrayList();
文件列表请求;
@凌驾
受保护的Void doInBackground(Void…参数){
试一试{
//TODO自动生成的方法存根
Log.d(“Msg”,“Do in Background”);
request=gDrive.files().list();
Log.d(“Msg”,request.toString());
FileList file=request.execute();
addAll(file.getItems());
名称=新的ArrayList();
对于(文件file1:result){
name.add(file1.getTitle());
Log.d(“Names”,Names.toString());
}
}捕获(例外e)
{
e、 printStackTrace();
}
返回null;
}
@凌驾
受保护的void onPostExecute(void参数){
//TODO自动生成的方法存根
super.onPostExecute(params);
Log.d(“Msg”、“onPostExecute”);
Log.d(“Names”,Names.toString());
}`

您使用的是应用程序拥有的帐户,与普通帐户类似,但属于应用程序而不是用户

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

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


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

是的,但我不明白什么是应用程序拥有的帐户。请帮助再多给我一点。