2

以下 2 个代码片段演示了我在使用 NEW 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);

Drive 里的一切都很好,花花公子。图像在那里,看起来很棒,我什至可以将它发送给我妈妈。但这不是我所追求的。我想在我的 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 类型。

4

1 回答 1

3

谜团解开了。这是一个特点!中的“jpgBuffer”

cont.getOutputStream().write(jpgBuffer);

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

于 2014-02-19T16:41:15.047 回答