Android 从SD卡获取音频文件时出错
我正在尝试从SD卡获取音频文件。以下是我正在使用的代码:Android 从SD卡获取音频文件时出错,android,Android,我正在尝试从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"}; Cur
//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
有谁能告诉我这段代码有什么问题吗???目前您正在将
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);
注意:-
的字符串值为“title”use
String projection[]=new String[]{MediaStore.Audio.Media.title}代码>而不是字符串投影[]=新字符串[]{“android.provider.MediaStore.Audio.Media.TITLE”}代码>谢谢,它解决了这个问题。但是你能解释一下错误的确切原因吗?当我们传递android.provider.MediaStore.Audio.Media.TITLE
时,意味着我们正在从MediaStore
类访问TITLE
常量,其中TITLE
值为TITLE
你还可以看到我在回答中提到的grepcode链接,了解更多细节