5

私は少し初心者で、Google ドライブのすべてのファイルとフォルダを一覧表示したいと考えています。

新しいSDKをダウンロードし、アプリをすべて承認しました。サンプルを使用して、オープナーでフォルダーを選択し、リストビューにコンテンツを表示しました。

BUT -ファイルは表示されませんでした。選択したフォルダーのサブフォルダーのみが表示されます。

そのため、新しい SDK には SCOPE_FILE アクセスのみがあり、アプリが作成したファイル、またはユーザーが自分で選択したファイルのみを表示することができます。

しかし、特定のフォルダー内のすべてのファイルとフォルダーを一覧表示できるようにする必要があるため、これはまったく機能しません。

さらに読むと、REST Java API (または何か) を使用する必要があるようです。これにより、ファイルやメタデータへの読み取り専用アクセスも取得できるようになります。

問題は、Jar ファイルなどに関して正確に必要なものと、それらをどこに置くべきかを見つけるのに苦労していることです。

覚えておいてください、私はこれらすべてに不慣れです。

私はAndroid Studioを使用しているので、誰か教えてください:

  • 正確に必要な JAR ファイル

  • それらをどこに置くべきですか(libsフォルダーに?)

  • それらを含めるためにbuild.gradleを編集する必要がありますか?

  • 承認の例はありますか?

  • ROOT フォルダーなどのファイルとフォルダーを一覧表示する例

  • 新しい SDK は必要ですか?

これについて助けてくれてありがとう。

4

1 に答える 1

6

さて、どうやら 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 API 7.5.0 で試してみたところ、この遅れた API で 2 時間を無駄にしました。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)

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

アリス・イン・ワンダーランドの誰か?

于 2015-06-30T12:17:26.953 に答える