2

次の 2 つのコード スニペットは、新しい 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 タイプとして表示されます。

4

1 に答える 1

3

謎が解けました。それは機能です!の「jpgBuffer」

cont.getOutputStream().write(jpgBuffer);

実際には PNG バイナリ データが含まれています。したがって、アプリで「image/jpeg」MIME タイプが指定されていたとしても、Google は私の(ユーザーの)データをスヌーピングした後、MIME タイプを「image/png」に修正することにしました。また、遅延が発生するため、デバッグプロセスがさらに不可解になることにも注意してください。

于 2014-02-19T16:41:15.047 に答える