Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从SD卡获取音频文件时出错_Android - Fatal编程技术网

Android 从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

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

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

目前您正在将
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链接,了解更多细节