android - MIME 类型从 "image/jpeg"切换为 "image/png"

标签 android google-drive-api google-play-services google-drive-android-api

以下 2 个代码 fragment 演示了我在使用新的 Google Drive Android API/Google Play Services 4.2 (libver 15) 时遇到的问题。或者这是我不知道的功能?为了保持代码简单,所有错误检查和初始化都被删除。

1/我创建了一张“image/jpeg”MIME类型的图片;

GoogleApiClient mGAC;
byte[] jpgBuffer;
DriveFolder fldr;

ContentsResult rslt = Drive.DriveApi.newContents(mGAC).await();
Contents cont = rslt.getContents();
cont.getOutputStream().write(jpgBuffer);
MetadataChangeSet meta = new MetadataChangeSet.Builder()
  .setTitle("foo.jpg").setMimeType("image/jpeg")
  .build();
fldr.createFile(mGAC, meta, cont);

大道上的一切都美好而花哨。图片就在那里,看起来很棒,我什至可以将它发送给我妈妈。但这不是我所追求的。我想在我的 Android 应用程序的另一部分检索它。

2/所以我尝试这个:

Query query = new Query.Builder().addFilter(
  Filters.eq(SearchableField.MIME_TYPE, "image/jpeg")
).build();
MetadataBufferResult rslt = Drive.DriveApi.query(mGAC, query).await();
for (Metadata md : rslt.getMetadataBuffer()) {
  Log.d("TAG", md.getTitle() + " " + md.getMimeType());
}

结果:又大又胖,没什么。

我不会放弃,所以下一个合乎逻辑的步骤是寻找任何文件。我在步骤 1/中保存的文件“foo.jpg”显示为“image/png”MIME 类型。

最佳答案

谜团已解。 这是一个功能! 中的“jpgBuffer”

cont.getOutputStream().write(jpgBuffer);

实际上包含PNG二进制数据。因此,即使我的应用程序指定了“image/jpeg”MIME 类型,Google 在窥探我(我的用户)数据后决定将 MIME 类型更正为“image/png”。还应该注意的是,它会发生一些延迟,使得调试过程更加神秘。

关于android - MIME 类型从 "image/jpeg"切换为 "image/png",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21868835/

相关文章:

android - setViewForPopUp(view) google api (11.6.0) google play 登录

android - Push Kit 什么时候会包含 android :exported attributes required for Android 12?

android - java.lang.NoClassDefFoundError : org/apache/oltu/oauth2/client/request/OAuthClientRequest$TokenRequestBuilder

android - Google Drive API - 获取包括文件夹在内的文件列表

android - 在公共(public)存储库上为 CircleCI 添加 Google-services.json 以使其运行

android - 向自己发送可靠消息? Google Play 游戏服务 - Android

Android - Open GL ES ...我可以从哪里开始?

android - 如何在 cygwin for windows 中使用 ndk-build 构建 libav?

python - 使用 python 下载由谷歌应用程序脚本创建的谷歌驱动器中的文件

ios - iOS 中的 Google 云端硬盘 SDK