我正在尝试从SD卡中获取音频文件。这是我正在使用的代码:
//the URI where I want the query to be performed
Uri externalAudio = android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
String projection[] = new String[] {"android.provider.MediaStore.Audio.Media.TITLE"};
Cursor curExternalAudio = cr.query(externalAudio, projection, null, null, null);
//code to display result
错误位于最后一行,但它是由投影数组引起的。 logcat中显示的错误如下:
E/AndroidRuntime(1994): Caused by: android.database.sqlite.SQLiteException: near ".": syntax error (code 1): , while compiling: SELECT android.provider.MediaStore.Audio.Media.TITLE FROM audio
有人可以告诉我这段代码有什么问题吗?
答案 0 :(得分:2)
目前,您在投影数组中传递android.provider.MediaStore.Audio.Media.TITLE
作为列名,该列不是有效的列名。您需要传递android.provider.MediaStore.Audio.Media.TITLE
的值,它也是ContentProvider中的String列名。将投影数组更改为:
String projection[] = new String[] {android.provider.MediaStore.Audio.Media.TITLE};
Cursor curExternalAudio = cr.query(externalAudio, projection, null, null, null);
注意: -
android.provider.MediaStore.Audio.Media.TITLE的字符串值是“title”