Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.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
如何在Google Drive Android API中获取已创建文件夹的DriveId_Android_Google Drive Api_Google Drive Android Api - Fatal编程技术网

如何在Google Drive Android API中获取已创建文件夹的DriveId

如何在Google Drive Android API中获取已创建文件夹的DriveId,android,google-drive-api,google-drive-android-api,Android,Google Drive Api,Google Drive Android Api,我的Google Drive帐户上有文件夹,我想在特定文件夹中添加文件。我怎么做?在需要的DriveId中存在\u FOLDER\u ID,但我不知道DriveId我的文件夹,我只知道名称。如果您有文件夹的元数据或DriveFolder对象,您可以从中获取元数据,您可以调用 如果您有web资源,则可以使用该资源id获取DriveId。如果您有文件夹的元数据或DriveFolder对象,您可以从中获取元数据,则只需调用 如果您有web资源,您可以使用该资源id通过@smokybob获取DriveI

我的Google Drive帐户上有文件夹,我想在特定文件夹中添加文件。我怎么做?在需要的DriveId中存在\u FOLDER\u ID,但我不知道DriveId我的文件夹,我只知道名称。

如果您有文件夹的元数据或DriveFolder对象,您可以从中获取元数据,您可以调用


如果您有web资源,则可以使用该资源id获取DriveId。如果您有文件夹的元数据或DriveFolder对象,您可以从中获取元数据,则只需调用


如果您有web资源,您可以使用该资源id通过

@smokybob获取DriveId。我不知道这对原来的问题是否有帮助,但根据您的评论:

下面是一段代码片段,它应该可以为您获取文件夹/文件驱动器ID。“title”、“mime”和“fldr”参数是可选的。如果为“fldr”传递null,则搜索在应用程序的文件范围内是全局的,否则在指定的文件夹内而不是在子文件夹中。它使用最简单的“等待”风格,必须从UI线程中运行

不过要小心,文件夹/文件名在Google Drive中不是唯一的实体。在一个文件夹中可以有多个同名文件/文件夹

一般来说,您可以从以下位置获得所需的“DriveId”:

如上面代码所示的文件/文件夹名称,或 从“encodeToString”获取的字符串标识符。例如,我使用它来缓存我的根文件夹id,或者 从“getResourceId”获取的字符串标识符。这是您在html地址中看到的字符串。但由于您的唯一作用域是文件,所以不要指望使用它打开应用程序未创建的内容。 2和3标识符都是字符串,因此它们可能会混淆。通过decodeFromString检索驱动器ID时,标识符2更快。通过fetchDriveId检索标识符3的速度较慢,但如果您需要将ID带到其他位置,例如应用程序脚本,则标识符3非常有用。另见


至于文件/文件夹的创建,我有一些代码。如果查看waits\MainActivity.java。。。buildTree,您将在构建简单文件夹树时看到递归创建文件夹/文件

@smokybob。我不知道这对原来的问题是否有帮助,但根据您的评论:

下面是一段代码片段,它应该可以为您获取文件夹/文件驱动器ID。“title”、“mime”和“fldr”参数是可选的。如果为“fldr”传递null,则搜索在应用程序的文件范围内是全局的,否则在指定的文件夹内而不是在子文件夹中。它使用最简单的“等待”风格,必须从UI线程中运行

不过要小心,文件夹/文件名在Google Drive中不是唯一的实体。在一个文件夹中可以有多个同名文件/文件夹

一般来说,您可以从以下位置获得所需的“DriveId”:

如上面代码所示的文件/文件夹名称,或 从“encodeToString”获取的字符串标识符。例如,我使用它来缓存我的根文件夹id,或者 从“getResourceId”获取的字符串标识符。这是您在html地址中看到的字符串。但由于您的唯一作用域是文件,所以不要指望使用它打开应用程序未创建的内容。 2和3标识符都是字符串,因此它们可能会混淆。通过decodeFromString检索驱动器ID时,标识符2更快。通过fetchDriveId检索标识符3的速度较慢,但如果您需要将ID带到其他位置,例如应用程序脚本,则标识符3非常有用。另见


至于文件/文件夹的创建,我有一些代码。如果查看waits\MainActivity.java。。。buildTree,您将在构建简单文件夹树时看到递归创建文件夹/文件

好的。我在Github上的驱动器演示中遇到了同样的问题:

自述文件的底部写着:

如果你真的想运行这个示例应用程序,尽管它主要是 如果您可以读取代码,则需要注册OAuth 软件包com.google.android.gms.drive.sample.demo的2.0客户端,使用您自己的调试键,并将任何资源ID设置为您需要的资源ID 有权访问。资源ID定义位于:

com.google.android.gms.drive.sample.demo.BaseDemoActivity.EXISTING_FOLDER_ID com.google.android.gms.drive.sample.demo.BaseDemoActivity.EXISTING_FILE_ID

他们并没有具体说明如何获取和设置BaseDemoActivity文件中定义的现有\u文件夹\u ID和现有\u文件\u ID常量的resourceID,在阅读了上面的seanpj注释后,我使用了他的方法3来查找DriveID,以便我可以将其添加到演示应用程序中,使其正常运行

你所需要做的就是在你的电脑上打开驱动器,然后点击顶部的链接按钮

链接的一部分显示id=XXXXXXXXXX。将其复制并粘贴到中的BaseDemoActivity文件中 演示应用程序。对您自己在驱动器上创建的文件和文件夹执行此操作


演示应用程序现在应成功运行。

确定。我在Github上的驱动器演示中遇到了同样的问题:

自述文件的底部写着:

如果你真的想运行这个示例应用程序,尽管它主要是 如果您可以读取代码,则需要注册OAuth 软件包com.google.android.gms.drive.sample.demo的2.0客户端,使用您自己的调试键,并将任何资源ID设置为您需要的资源ID 有权访问。资源ID定义位于:

com.google.android.gms.drive.sample.demo.BaseDemoActivity.EXISTING_FOLDER_ID com.google.android.gms.drive.sample.demo.BaseDemoActivity.EXISTING_FILE_ID

他们并没有具体说明如何获取和设置BaseDemoActivity文件中定义的现有\u文件夹\u ID和现有\u文件\u ID常量的resourceID,在阅读了上面的seanpj注释后,我使用了他的方法3来查找DriveID,以便我可以将其添加到演示应用程序中,使其正常运行

你所需要做的就是在你的电脑上打开驱动器,然后点击顶部的链接按钮

链接的一部分显示id=XXXXXXXXXX。复制并粘贴到演示应用程序中的BaseDemoActivity文件中。对您自己在驱动器上创建的文件和文件夹执行此操作


演示应用程序现在应该可以成功运行。

您可以使用查询来查找文件夹

Query query = new Query.Builder().addFilter(Filters.and(
                Filters.eq(SearchableField.TITLE, "folder name"),
                Filters.eq(SearchableField.TRASHED, false))).build();
我提供了一个示例教程
在本教程中,它们是异步调用的

您可以使用查询来查找文件夹

Query query = new Query.Builder().addFilter(Filters.and(
                Filters.eq(SearchableField.TITLE, "folder name"),
                Filters.eq(SearchableField.TRASHED, false))).build();
我提供了一个示例教程
在本教程中,他们正在异步调用

我认为一个简单的问题是:当我只知道foldernameaka标题时,如何获取文件夹的DriveId,并向其中添加文件?在这种情况下,您可以使用查询API搜索具有该标题的文件夹:,com.google.android.gms.drive.query.QuerySo我可以获得不是通过我的应用程序创建的文件夹,但例如通过webinterface,您的应用程序需要获得查看该文件夹的授权。您可以通过OpenFileActivity要求用户选择一个文件夹来完成此操作,在该活动中,您将mimeType限制为文件夹mimeType@云达因为我们在谈论新的Google Drive Android API,我相信你只能用你的应用程序创建的文件来“开派对”,因为只支持文件范围。我认为一个简单的问题是:当我只知道foldernameaka标题时,我怎么才能获得文件夹的驱动器ID,并向其中添加文件?在这种情况下,您可以使用查询API搜索标题为com.google.android.gms.drive.Query.Query的文件夹。我可以获取不是通过我的应用程序创建的文件夹,但例如通过webinterface,您的应用程序需要获得查看该文件夹的授权。您可以通过OpenFileActivity要求用户选择一个文件夹来完成此操作,在该活动中,您将mimeType限制为文件夹mimeType@云达因为我们谈论的是新的Google Drive Android API,我相信你只能用你的应用程序创建的文件来“举办派对”,因为只支持文件范围。我重复我自己的话,但问题是,这个文件必须由演示应用程序自己创建。GDAA只支持文件作用域,即只能使用它创建的文件/文件夹。在一个松散相关的问题中,我在Github上放了一段测试代码,除了官方演示之外,这可能很有用,因为它要简单得多。欢迎您参与其中。我在重复我自己的话,但问题是这个文件必须由演示应用程序自己创建。GDAA只支持文件作用域,即只能使用它创建的文件/文件夹。在一个松散相关的问题中,我在Github上放了一段测试代码,除了官方演示之外,这可能很有用,因为它要简单得多。欢迎您参与其中。找不到GitHub页面。我已退休。这里仍然有一个,但我已经有一段时间没有碰它了,GDAA可能已经进化了。GitHub页面未找到·我已经退休了。这里仍然有一个,但我已经有一段时间没碰它了,GDAA可能已经进化了。