0
以下はコードです。以下のコードは、IOExceptionがでメッセージがあるサムスンタブ10.1HTTPエラー416 AndroidでGoogleドライブレストAPIを使用してリクエストされた範囲が満足できない
String pageToken = null;
do {
FileList remoteImageList = mService.files().list()
.setSpaces("appDataFolder")
.setPageToken(pageToken)
.setQ("mimeType='image/webp'")
.setPageSize(10)
.setFields("nextPageToken, files(id, name)")
.execute();
for (com.google.api.services.drive.model.File file : remoteImageList.getFiles()) {
File newLocalImage = new File(getExternalFilesDir(null), file.getName());
FileOutputStream fos = new FileOutputStream(newLocalImage);
mService.files()
.get(file.getId())
.executeMediaAndDownloadTo(fos);
fos.close();
}
pageToken = remoteImageList.getNextPageToken();
} while (pageToken != null);
を使用して、ユーザーのいずれかの1例を除いて、正常に動作します。
416 Requested range not satisfiable
{
"error": {
"errors": [
{
"domain": "global",
"reason": "requestedRangeNotSatisfiable",
"message": "Request range not satisfiable"
}
],
"code": 416,
"message": "Request range not satisfiable"
}
}
コードから、executeMediaAndDownloadToメソッドを呼び出すときにエラーが生成されることがわかりました。このメソッドの実装はMediaHttpDownloader(Google APIの一部)を使用しており、実装は正しいように見えます。私が考えることができるのは、サムスンのタブ10.1デバイスに、バグがある可能性のあるGoogle APIの実装が異なることだけです。
誰もこの問題に直面していませんか?
複数のデバイスでこれをテストしましたか?オープンドライブ時にブラウザを使用していますか?この[HTTPエラー416](https://bugs.chromium.org/p/chromium/issues/detail?id=68298)を見つけました –
@ d.datul1990リンクをありがとうございます。エラーの原因はコード内でデータをGoogleドライブにプッシュすることにあります。同期されたonStartCommand内でデータをプッシュするためにアンドロイドサービスを使用していました。しかし、アップロードが同時に行われていて、ドライブ内のファイルが破損しているようです。 (テストデバイスで強制的にアップロードを強制して問題を再現しました)。アップロードを静的オブジェクトと同期させて、問題を解決しました。今私はいくつかのデバイスに問題があり、複数のサービスインスタンスを許可するかどうか疑問に思っていますか? –