要解决Android MediaStore查询找不到任何m4a音频文件的问题,可以使用以下代码示例:
import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.provider.MediaStore;
import android.util.Log;
public class AudioHelper {
private static final String TAG = "AudioHelper";
public static void queryM4aFiles(Context context) {
ContentResolver contentResolver = context.getContentResolver();
Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
String[] projection = {
MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.TITLE,
MediaStore.Audio.Media.DATA
};
String selection = MediaStore.Audio.Media.DATA + " LIKE ?";
String[] selectionArgs = new String[]{"%.m4a"};
Cursor cursor = null;
try {
cursor = contentResolver.query(uri, projection, selection, selectionArgs, null);
if (cursor != null && cursor.moveToFirst()) {
do {
long id = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media._ID));
String title = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));
String data = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
Log.d(TAG, "ID: " + id + ", Title: " + title + ", Data: " + data);
} while (cursor.moveToNext());
} else {
Log.d(TAG, "No m4a audio files found.");
}
} catch (Exception e) {
Log.e(TAG, "Error querying m4a audio files: " + e.getMessage());
} finally {
if (cursor != null) {
cursor.close();
}
}
}
}
然后,在你的Activity或Fragment中调用queryM4aFiles方法来查询m4a音频文件:
AudioHelper.queryM4aFiles(getApplicationContext());
这将打印出所有找到的m4a音频文件的ID、标题和路径。如果没有找到任何m4a音频文件,将输出"No m4a audio files found."
上一篇:Android MediaStore-Downloads 无法访问音频文件
下一篇:Android MediaStore:Images.Media.insertImage vs ContentResolver.insert