2

OK、2つのデバイスがあり、両方とも同じgmailアカウントを持ち、両方とも同じアプリを持っていますが、異なるキーで署名されています. SHA1 キーは Google コンソールで構成されます。

あるデバイスからいくつかのテキスト ファイルをアップロードしていて、これらのファイルを別のデバイスにインポートしたいと考えています。ファイルをアップロードし、同じデバイスでファイルを取得できるようになりましたが、別のデバイスからアップロードされたファイルを取得できません。結果は空ですが、log cat にエラーはありません。

2 番目のデバイスからファイルをアップロードすると、2 番目のデバイスからのみこれらのファイルをインポートできます。したがって、問題は、ファイルをアップロードするデバイスからのみ機能するファイルのインポートです。

アップロードしているデバイスに関係なくファイルを取得したい。

注 - Google ドライブ アプリでは、ファイルがどのデバイスからアップロードされたかに関係なく、すべてのファイルが表示されます。

ここにコードがあります

private List<File> retrieveAllFiles(Drive service) throws IOException {
        List<File> result = new ArrayList<File>();
        Files.List request = service.files().list();

        do {

            try {
                FileList files = request.execute();

                result.addAll(files.getItems());
                request.setPageToken(files.getNextPageToken());
            } catch (final UserRecoverableAuthIOException e) {
                System.out.println("An error occurred: " + e);

                request.setPageToken(null);
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        startActivityForResult(e.getIntent(),
                                REQUEST_AUTHORIZATION);
                    }
                });


                break;
            }
        } while (request.getPageToken() != null
                && request.getPageToken().length() > 0);

        Log.v("result", result.toString());
        return result;
    }

アップデート

認証コードはこちら

    SharedPreferences preferences = getSharedPreferences("pref",
            MODE_PRIVATE);
    String accountName = preferences.getString("accountName", "");
    credential = GoogleAccountCredential.usingOAuth2(this,
            Arrays.asList(DriveScopes.DRIVE_FILE));
    if (accountName.equals("")) {

        startActivityForResult(credential.newChooseAccountIntent(),

        REQUEST_ACCOUNT_PICKER);
    } else {
        credential.setSelectedAccountName(accountName);
        service = getDriveService(credential);

    }
4

1 に答える 1