返された結果がそれぞれのファイルによってフィルタリングされる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ファイルもリストに追加されますが、ファイルの種類に関係なくリスト全体をアルファベット順にする必要があります。
私はここにいる誰かがこれを簡単に答えることができると知っています - >ありがとうございました!
何を入れた場合について「」 {"%.mp3%"}のように? – user370305
私は以前は%.mp3%を試していましたが、文法的にはクラッシュの原因となっていたはずですが、今、はい、動作します... ...%.mp3%AND %.wav%??? (配列に別の文字列を追加しても機能しない、メッセージでクラッシュする: E/AndroidRuntime(9407):java.lang.RuntimeException:アクティビティを開始できません... android.database.sqlite.SQLiteException:bindまたは列インデックスが範囲外です:handle 0x388060 – fatfreddyscat
これを試してみてください.MailQuery(Audio.Media.EXTERNAL_CONTENT_URI、myProjection、Audio.Media.DATA + "like?"、新しいString [] {"%.mp3"、 "%.wav" }、null);そして私に何が起こるか教えてください。 – user370305