好的,我有两台设备都有相同的 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);
}