2

好的,我有两台设备都有相同的 gmail 帐户,并且都有相同的应用程序但使用不同的密钥签名。SHA1 密钥在 Google 控制台中配置。

我正在从一台设备上传一些文本文件,并希望将这些文件导入另一台设备。现在我可以上传文件并在同一设备中获取文件,但无法从另一台设备获取上传的文件。结果是空的,但是log cat中没有错误。

如果我从第二台设备上传文件,那么我只能从第二台设备导入这些文件。所以问题是导入文件只能从上传文件的设备上工作。

无论我从哪个设备上传,我都想获取文件。

注意 - 在 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

1

它不起作用,因为 Drive 将您的两台设备视为两个不同的应用程序。因为您使用的是 Drive.File 范围,所以每个应用程序只能看到它自己创建的文件。您需要为这两个应用程序提供相同的 ID,或者使用 Drive 范围,以便每个应用程序都可以查看所有文件。

于 2013-10-05T09:01:08.123 回答