2016-09-05 4 views
1

私は、MediaStore.Images.Mediaクラスから20列すべてを含むすべてのMediaStore外部イメージを取得するためにContentProviderクエリを作成しました。 Cursorは、いくつかの列の型nullを返します。これは、この列が存在しないことを意味しますか?これはデバイスやアンドロイドのバージョンに依存していますか?Android MediaStoreスキーマ

答えて

0

5つのあらかじめ定義されたタイプのいずれかを返すことができ、カーソルのgetType()方法:

  • FIELD_TYPE_NULL
  • FIELD_TYPE_INTEGER
  • FIELD_TYPE_FLOAT
  • FIELD_TYPE_STRING
  • FIELD_TYPE_BLOB

を指定された列がヌルの場合は、の値が返され、値はgetType(int)になります。

列が存在するかどうかを確認するための最良の方法は、cursor上でコードを実行することです:

int value = cursor.getColumnIndex(myColumn); 
if(value == -1) { 
    //column exists 
} else { 
    //column doesn't exist 
} 
+0

ありがとうございました。私は、カーソルの内容を記録するより一般的な方法を構築し、Mediaの契約定義と実際のデータベーススキーマについて混乱しました。 – Happo

関連する問題