Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android MIME类型从“切换”;图像/jpeg";至;图片/png“;_Android_Google Drive Api_Google Play Services_Google Drive Android Api - Fatal编程技术网

Android MIME类型从“切换”;图像/jpeg";至;图片/png“;

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

以下两段代码片段演示了我在使用新的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.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);