以下 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/