Android SDK を試すためのアプリを作成しました。以前はうまくいきました(認証トークンの取得、写真の撮影、Googleドライブフォルダーへのアップロード)。最近、アプリで Google ドライブへのアップロードに問題が発生しました。以下は、アップロードを行うコードです。基本的に、ファイルが存在するかどうかをチェックし、insert() または update() を使用するかどうかを決定します。以前はうまくいきましたが、今は Google ドライブにファイルをアップロードしようとすると. GoogleDrive にフォルダを正常に作成したら、次のステップはファイルをアップロードすることですが、毎回次のようなエラー メッセージが表示されます。
07-03 13:49:54.824: W/System.err(31132): com.google.api.client.googleapis.json.
GoogleJsonResponseException: 400 Bad Request
07-03 13:49:54.824: W/System.err(31132): {
07-03 13:49:54.824: W/System.err(31132): "code": 400,
07-03 13:49:54.824: W/System.err(31132): "errors": [
07-03 13:49:54.824: W/System.err(31132): {
07-03 13:49:54.824: W/System.err(31132): "domain": "global",
07-03 13:49:54.824: W/System.err(31132): "message": "Media type '' is not supported. Valid media types: [*/*]",
07-03 13:49:54.824: W/System.err(31132): "reason": "badContent"
07-03 13:49:54.824: W/System.err(31132): }
07-03 13:49:54.824: W/System.err(31132): ],
07-03 13:49:54.824: W/System.err(31132): "message": "Media type '' is not supported. Valid media types: [*/*]"
私の当初の推測では、コードでアップロード本文の MIMETYPE を設定するのを忘れていました。コードを更新して、実行前に MIMETYPE を設定したためです。ログで、MIME タイプが変更されたことを確認できますが、アップロードを実行すると、メディア タイプ '' がサポートされていないことを示す同じエラー メッセージが引き続き表示されます。(または空だと思います)。誰が何が起こったのか知っていますか?以前の質問を検索しましたが、役に立ちました。
private com.google.api.services.drive.model.File processGDFile(Drive service,
String parentId, File localFile) throws Exception {
Log.i(TAG, "We are in processGDFile");
boolean existed = false;
com.google.api.services.drive.model.File processedFile;
// Determine whether the file exists in this folder or not.
String q = "'" + parentId + "' in parents and" + "title = " + "'"
+ localFile.getName() + "'";
FileContent mediaContent = new FileContent("", localFile);
FileList resultFileList = ExcuteQuery(q);
try {
// if this file already exists in GD, we do update
if (!resultFileList.getItems().isEmpty()) {
Log.i(TAG, "the file exists, use update....");
existed = true;
com.google.api.services.drive.model.File gdFile = resultFileList
.getItems().get(0);
Log.i(TAG, "MIMETYPE:" + gdFile.getMimeType());
gdFile.setMimeType("image/jpeg");
Log.i(TAG, "MIMETYPE_after:" + gdFile.getMimeType());
processedFile = service.files()
.update(gdFile.getId(), gdFile, mediaContent).execute();
// Uncomment the following line to print the File ID.
Log.i(TAG, "Processed File ID: %s" + processedFile.getId());
} else {
Log.i(TAG, "the file is new, create its meta data");
// Start the new File's metadata.
com.google.api.services.drive.model.File body = new com.google.api.services.drive.model.File();
body.setTitle(localFile.getName());
// Set the parent folder.
if (parentId != null && parentId.length() > 0) {
body.setParents(Arrays.asList(new ParentReference().setId(parentId)));
}
Log.i(TAG, " before insert body");
Log.i(TAG, "MIMETYPE:" + body.getMimeType());
body.setMimeType("image/jpeg");
Log.i(TAG, "MIMETYPE_after:" + body.getMimeType());
processedFile = service.files().insert(body, mediaContent).execute();
Log.i(TAG, "Processed File ID: %s" + processedFile.getId());
}
} catch (Exception e) {
throw e;
}
return processedFile;
}
誰もこの問題を解決する方法を知っていますか? ありがとう〜