2011-10-28 5 views
3

返された結果がそれぞれのファイルによってフィルタリングされるAndroid SDKを使用してmanagedQueryを実行したい )。私はかなりの調査をして、疲れていて、コミュニティーが私を助けてくれることを願っています。私は答えがそこにあると確信していますが、SQLブックなどを読むのではなく、それはかなりシンプルだが解決策を見つけるべきではない。Android Cursorのファイル拡張子(またはファイルタイプ)でmanagedQueryをフィルタリングします

私は何をしたいです、基本的に、何かのように:

managedQuery(Audio.Media.EXTERNAL_CONTENT_URI, myProjection, Audio.Media.DATA + " like ? ", new String[] {"%mp3%"}, null); 

タイトルは「mymp3.wav」、このクエリは、まだ「mp3」以来、それを返しますのようなものがある場合、これは、ことを除いて動作しますしかし、それは私が欲しいものではありません - >私はファイル拡張子に基づいて純粋にフィルタリングしたい(あるいは、ファイルタイプを変更する方法があればファイルタイプを変更したい[mp3のファイル拡張子名が.wavファイルの内容が実際にmp3であっても、それは私の目的のためにもうまくいく)。このソリューションでは、複数の拡張子/ファイルタイプをフィルタリングする方法が示されています(たとえば、.mp3ファイルと.amavファイル以外の.wavファイルはすべて返されるようにする場合)。

さらに、私の場合は、結果をアルファベット順に並べ替える必要があります。私は何か試してみました:全体結果をフィルタリングしていないこと、しかし

managedQuery(Audio.Media.EXTERNAL_CONTENT_URI, myProjection, null, null, MediaStore.Audio.Media.TITLE + " ASC"); 

を...それはそれを言うことです、で、その後、mp3のタイトル、たとえば、順にソートされ返されるリスト最後にアルファベット順にソートされた.wavファイルもリストに追加されますが、ファイルの種類に関係なくリスト全体をアルファベット順にする必要があります。

私はここにいる誰かがこれを簡単に答えることができると知っています - >ありがとうございました!

+0

何を入れ​​た場合について「」 {"%.mp3%"}のように? – user370305

+0

私は以前は%.mp3%を試していましたが、文法的にはクラッシュの原因となっていたはずですが、今、はい、動作します... ...%.mp3%AND %.wav%??? (配列に別の文字列を追加しても機能しない、メッセージでクラッシュする: E/AndroidRuntime(9407):java.lang.RuntimeException:アクティビティを開始できません... android.database.sqlite.SQLiteException:bindまたは列インデックスが範囲外です:handle 0x388060 – fatfreddyscat

+0

これを試してみてください.MailQuery(Audio.Media.EXTERNAL_CONTENT_URI、myProjection、Audio.Media.DATA + "like?"、新しいString [] {"%.mp3"、 "%.wav" }、null);そして私に何が起こるか教えてください。 – user370305

答えて

8

%mp3%から%mp3に変更するだけです。これは、 "mp3"をファイル名の最後に強制します。

あなたが複数のファイルタイプを選択する必要がある場合は、このようにそれを実行します。

managedQuery(
    Audio.Media.EXTERNAL_CONTENT_URI, 
    myProjection, 
    Audio.Media.DATA + " like ? OR " + Audio.Media.DATA + " like ? ", 
    new String[] {"%mp3","%wav"}, 
    MediaStore.Audio.Media.TITLE + " ASC"); 
+0

大丈夫です。上記のコメントで議論したように、%.mp3%を置くよりもちょっといいと思います。ただし、複数のselectionArgを持つことができる必要があります(例:.wav *と* .mp3ファイルの両方を返すようにすることができます)。解決策はありますか? – fatfreddyscat

+0

私の更新された回答を参照してください。 –

+0

美しく働いた!あなたの答えを更新してくれてありがとう!私はAudio.Media.DATA +を好きにしてみたかったのですか?そこに2番目の「Audio.Media.DATA」を追加しようとは思わなかった。どうもありがとうございました!!(また、あなたの助けや勤勉のためにuser370305もありがとう!) – fatfreddyscat

関連する問題