プロバイダのMediaStore.Images.ImageColumnsとMediaStore.Video.VideoColumnsのすべてのイメージとビデオを一時的に昇順で取得できますか?Android - 時間的順序でイメージとビデオを取得
より正確に説明すると、各タプルのID、日付、名前、緯度、経度、パス、mimeType、dataの各属性を含むすべての動画と画像のリストが必要です。
しかし、これらの情報は、MediaStore.MediaColumns、Images.ImageColumns、およびMediaStore.Video.VideoColumnsというメディアの種類ごとに1つずつ、3つのテーブルに分かれています。
1つのクエリで可能ですか?
解決策は、MediaStore.MediaColumnsテーブルのidを時間的に上位の順序で照会し、取得したIDごとに特定のテーブルでmimetypeに応じて1つのクエリを実行することだと思います。MediaStore画像の場合は.Images.ImageColumns、動画の場合はMediaStore.Video.VideoColumns ...
時間的に上位の順序が重要です。最初に画像を照会し、ビデオを照会するソリューションは便利ではないでしょう...私は両方のリスト結果を分類したくありません...
ありがとうございました!
"androidのContentResolverのクエリAPIが本格的なSQLリクエスト用に設計されていない"と言えば、それはうまくいかないということですか?お勧めしませんか?他のソリューションよりも遅くなるでしょうか? – shem
@shem私が言っていることは、単に "本当の" /生のSQLクエリをContentResolverに "クエリ"メソッドで渡すことができないということです。これは、メソッドのシグネチャによってSQLスタイルをある程度模倣します。しかし、私が答えてくれたその複合的な要求をしてみてください。 "ContentResolver.query()"への1回の呼び出しで、2つの異なるテーブルから2つの "select"ブロックをどのように配置しますか?それは私が話していることです。 –