Я хочу выполнить управляемый запрос с использованием Android SDK, где возвращаемые результаты фильтруются по соответствующему расширению файла (например, не обязательно по имени). Я провел довольно много исследований, устал и надеюсь, что сообщество может мне помочь. Я уверен, что ответ есть, но вместо того, чтобы читать книгу по SQL или что-то в этом роде, я просто пытаюсь что-то сделать. это должно быть довольно просто, но не найти решение.
То, что я хочу сделать, это, по сути, что-то вроде:
managedQuery(Audio.Media.EXTERNAL_CONTENT_URI, myProjection, Audio.Media.DATA + " like ? ", new String[] {"%mp3%"}, null );
Это работает, ЗА ИСКЛЮЧЕНИЕМ того, что если заголовок похож на «mymp3.wav», этот запрос все равно вернет его, поскольку в имени есть «mp3», но это не то, что я хочу -> я хочу, чтобы он отфильтровывался исключительно на основе файла расширение (или, альтернативно, тип файла, если есть способ сделать это [например, если имя расширения файла mp3 было изменено на .wav, даже если содержимое файла на самом деле является mp3, это также будет работать для моих целей]) . В решении должен быть указан способ фильтрации нескольких расширений/типов файлов (например, если я хочу, чтобы запрос возвращал все файлы .mp3, а также файлы .wav, но не файлы .amr).
Кроме того, пока у меня есть вы, я хочу отсортировать результаты по алфавиту. Я пробовал что-то вроде:
managedQuery(Audio.Media.EXTERNAL_CONTENT_URI, myProjection, null, null, MediaStore.Audio.Media.TITLE + " ASC" );
Однако это не фильтрует все результаты... то есть возвращаемый список сортируется, скажем, по заголовку mp3, а затем, в конце, добавляется к списку. файлы .wav также отсортированы по алфавиту, но я хочу, чтобы весь список был в алфавитном порядке независимо от типа файла.
Я знаю, что кто-то здесь может легко ответить на этот вопрос -> заранее спасибо !!!