use*_*721 5 android google-drive-api google-drive-android-api
所以我有点新手,我希望列出Google云端硬盘中的所有文件和文件夹.
我已经下载了新的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();
Run Code Online (Sandbox Code Playgroud)
结果是"来自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)`
Run Code Online (Sandbox Code Playgroud)
然后我尝试了另一个范围: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)
Run Code Online (Sandbox Code Playgroud)
在谷歌API 7.5.0上尝试了这个,并在这个延迟的API上浪费了两个小时.我相信Java API无法正确处理,我们需要使用JSON API执行此操作.
编辑:我已经找到了关于如何使用其他Java API访问Google云端硬盘的非常好的教程: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)
Run Code Online (Sandbox Code Playgroud)
在com.google.api.client.util.SecurityUtils.getJavaKeyStore(SecurityUtils.java:53)
爱丽丝梦游仙境有人吗?
| 归档时间: |
|
| 查看次数: |
1537 次 |
| 最近记录: |