Android MIME类型从“切换”;图像/jpeg";至;图片/png“;
以下两段代码片段演示了我在使用新的Google Drive Android API/Google Play Services 4.2(libver 15)时遇到的问题。或者这是一个我不知道的功能?为了使代码简单,所有错误检查和初始化都被删除 1/I创建“图像/jpeg”MIME类型的图片Android MIME类型从“切换”;图像/jpeg";至;图片/png“;,android,google-drive-api,google-play-services,google-drive-android-api,Android,Google Drive Api,Google Play Services,Google Drive Android Api,以下两段代码片段演示了我在使用新的Google Drive Android API/Google Play Services 4.2(libver 15)时遇到的问题。或者这是一个我不知道的功能?为了使代码简单,所有错误检查和初始化都被删除 1/I创建“图像/jpeg”MIME类型的图片 GoogleApiClient mGAC; byte[] jpgBuffer; DriveFolder fldr; ContentsResult rslt = Drive.DriveApi.newConten
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”
实际上包含PNG二进制数据。因此,即使我的应用程序指定了“image/jpeg”MIME类型,谷歌在窥探了我(我的用户)的数据后决定将MIME类型改为“image/png”。还应该注意的是,这种情况会有一些延迟,这使得调试过程更加神秘。您是否尝试将mimetype设置为“image/*”。通过这种方式,它可以处理任何图像格式。这个问题对于“Google Drive Android API”来说非常具体,而且这里没有通配符支持。我们来看看这个,但是你上传的二进制数据是否有可能是png格式的?你比我快了7分钟。因此,它最终可能是一个关于MIME元数据字段所有权的争论。
cont.getOutputStream().write(jpgBuffer);