gpt4 book ai didi

android - 适用于 Android 的 Google Drive API - 仅 Drive.SCOPE_FILE 访问权限,需要只读

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:31:51 28 4
gpt4 key购买 nike

所以我有点新手,我想列出 Google Drive 中的所有文件和文件夹。

我已经下载了新的 SDK,获得了我的应用程序的所有授权等等。我使用示例通过打开器选择一个文件夹,然后在 ListView 中显示内容。

但是 - 没有 文件被显示。它仅显示所选文件夹中的所有子文件夹。

所以新的 SDK 似乎只有 SCOPE_FILE 访问权限,据我所知,它只允许应用查看它创建的文件,或者用户自己选择的文件。

但是由于我需要能够列出给定文件夹中的所有文件和文件夹,所以这对我来说根本不起作用。

从进一步阅读来看,我似乎必须使用 REST Java API(或其他东西),这将允许我获得对文件和元数据的只读访问权限。

问题是,我无法找到我真正需要的 Jar 文件等,以及我应该把它们放在哪里。

请记住,我对这一切都是陌生的。

我正在使用 Android Studio,所以有人可以告诉我:

  • 我需要哪些 JAR 文件

  • 我应该把它们放在哪里(在 libs 文件夹中?)

  • 我是否需要编辑 build.gradle 以包含它们?

  • 有授权的例子吗?

  • 以及用于列出文件和文件夹的示例,例如在 ROOT 文件夹中

  • 我是否需要新的 SDK?

感谢您对此的任何帮助。

最佳答案

好吧,该死的 Java API 显然不支持 https://www.googleapis.com/auth/drive访问所有文件所需的范围。我试过这个:

    googleApiClient = new GoogleApiClient.Builder(this)
.addApi(Drive.API)
.addScope(new Scope("https://www.googleapis.com/auth/drive"))
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();

结果是“来自 Google API 的未知错误”和日志中的异常:

06-30 14:11:48.803   3023-29855/? E/ClientConnectionOperation﹕ Handling authorization failure
com.google.android.gms.drive.auth.c: Authorization failed: Unsupported scope: https://www.googleapis.com/auth/drive
at com.google.android.gms.drive.auth.g.a(SourceFile:77)
at com.google.android.gms.drive.api.g.<init>(SourceFile:226)
at com.google.android.gms.drive.api.a.k.a(SourceFile:46)
at com.google.android.gms.common.service.g.run(SourceFile:178)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)`

然后我尝试了另一个范围:https://www.googleapis.com/auth/drive.readonly哪个没有以不同的方式工作:

06-30 14:12:25.082   3023-29981/? E/ClientConnectionOperation﹕ Handling authorization failure
com.google.android.gms.drive.auth.c: Authorization failed: No valid Drive authorization scope provided.
at com.google.android.gms.drive.auth.g.a(SourceFile:87)
at com.google.android.gms.drive.api.g.<init>(SourceFile:226)
at com.google.android.gms.drive.api.a.k.a(SourceFile:46)
at com.google.android.gms.common.service.g.run(SourceFile:178)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)

在 Google APIs 7.5.0 上试过这个并且在这个迟钝的 API 上浪费了两个小时。我相信 Java API 无法正确处理这个问题,我们需要使用 JSON API 来做到这一点。

编辑:我找到了关于如何使用另一个 Java API 访问 Google Drive 的非常好的教程:https://developers.google.com/drive/web/quickstart/java不幸的是,它不适用于 Android:

   Caused by: java.security.NoSuchAlgorithmException: KeyStore JKS implementation not found
at org.apache.harmony.security.fortress.Engine.notFound(Engine.java:190)
at org.apache.harmony.security.fortress.Engine.getInstance(Engine.java:139)
at java.security.KeyStore.getInstance(KeyStore.java:116)

在 com.google.api.client.util.SecurityUtils.getJavaKeyStore(SecurityUtils.java:53)

有人爱丽丝梦游仙境吗?

关于android - 适用于 Android 的 Google Drive API - 仅 Drive.SCOPE_FILE 访问权限,需要只读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22989929/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com