我将 jid3lib 用于 java。当我在存储在我的计算机中的文件上使用这个库时,它工作得很好,但是当我尝试读取模拟器 sdcard 上文件的 mp3 标签时,我得到了 Exeption。
我使用以下代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
File musicPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC);
File[] songs = musicPath.listFiles();
for (int i=0; i < songs.length; i++){
try {
MP3File song = new MP3File(new File(songs[i].getPath()));
Log.d("TEST", song.getID3v1Tag().getAlbum() );
} catch (TagException e) {
Log.d("TEST", "Tag Exception");
e.printStackTrace();
} catch (Exception e) {
Log.d("TEST", "Exception");
e.printStackTrace();
}
}
}
我在 sdcard 中放了 2 个 mp3 文件,但日志中仍然出现异常。这里有什么问题?
我在 LogCat 收到以下错误:
java.io.FileNotFoundException: /mnt/sdcard/Music/song.mp3: open failed: EACCES (Permission denied)
但是当我在 DDMS 的文件资源管理器中查看时,我可以看到该路径下的文件,即使我使用循环来打印文件名它也会显示正确的名称。