0

我在 SD 卡上有歌曲,我正在尝试获取该歌曲的标题:

File f = new File(filename);

String[] projection = { MediaStore.Audio.Media._ID, 
                        MediaStore.Audio.Media.ARTIST,
                        MediaStore.Audio.Media.TITLE,
                        MediaStore.Audio.Media.DATA, 
                        MediaStore.Audio.Media.DISPLAY_NAME,
                        MediaStore.Audio.Media.DURATION};

Cursor musiccursor = managedQuery(Uri.fromFile(f), 
                        projection, null, null, null);
musicTV.setText(musiccursor.getString(3));

但在最后一行我有NullPointerException。感谢您的任何建议。

4

2 回答 2

0

你有没有看到这个让你达到 90%,然后会让你走完剩下的路。

  1. 查询设备
  2. 初始化光标
  3. 遍历光标

困难的部分是理解列的抽象性质。请记住,它是一个数据库表,可以可视化为电子表格。不要忘记 Catch 声明!

于 2012-12-07T16:30:55.740 回答
0

如果您使用光标,当您获取一些内容时,您必须将光标移动到第一个元素,因为光标指向第一个元素之前。尝试使用:

Cursor musiccursor = managedQuery(Uri.fromFile(f),  projection, null, null, null);
cursor.moveToFirst();
musicTV.setText(musiccursor.getString(3));
于 2012-12-07T16:28:11.373 回答