0

我正在尝试从 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

谁能告诉我这段代码有什么问题??

4

1 回答 1

2

目前,您android.provider.MediaStore.Audio.Media.TITLE在投影数组中作为列名传递,这不是有效的列名。您将需要传递的值android.provider.MediaStore.Audio.Media.TITLE也是 ContentProvider 中的字符串列名。将您的投影数组更改为:

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”

于 2013-03-28T07:26:14.337 回答