Java Android应用程序-读取所有mp3标签

Java Android应用程序-读取所有mp3标签,java,android,tags,mp3,Java,Android,Tags,Mp3,正如我在MediaMetadataRetriever API上看到的,公共标记有常量。 在我的应用程序中,我想读取所有mp3标签。为了做到这一点,我使用jid3lib。 当我尝试在没有任何android连接的情况下读取标签(我的电脑上有MP3文件)时,我成功了,但当我尝试在模拟器上读取MP3文件时,我的应用程序崩溃了 我将一些音乐文件推送到模拟器中,成功地读取了这些文件名,但当应用程序试图获取标签时,它崩溃了 我想知道我是否需要在清单中声明任何android许可?或者在本地计算机上读取文件和在安

正如我在MediaMetadataRetriever API上看到的,公共标记有常量。 在我的应用程序中,我想读取所有mp3标签。为了做到这一点,我使用jid3lib。 当我尝试在没有任何android连接的情况下读取标签(我的电脑上有MP3文件)时,我成功了,但当我尝试在模拟器上读取MP3文件时,我的应用程序崩溃了

我将一些音乐文件推送到模拟器中,成功地读取了这些文件名,但当应用程序试图获取标签时,它崩溃了

我想知道我是否需要在清单中声明任何android许可?或者在本地计算机上读取文件和在安卓系统中读取文件有什么区别?因为我用同样的逻辑在我的电脑上读取MP3文件,而且它工作正常

编辑:从下面的注释中选择代码以提高可读性

File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC); 
File[] songs = path.listFiles(); 
for (int i=0; i<songs.length; i++){ 
   try { 
      MusicFile song = new MusicFile(songs[i]); 
      Log.d("VanVan", song.getArtist()); 
   } catch (TagException e) { 
      e.printStackTrace(); 
   } catch (Exception e) { 
      e.printStackTrace(); 
   } 
}
File path=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY\u MUSIC);
File[]songs=path.listFiles();

对于(int i=0;i是否使用Eclipse创建了保存MP3文件的文件夹,或者您只是导航到本地系统中的某个文件夹并创建了它?这是因为有时即使您正确引用了某个文件夹,Eclipse也不会注意到您在本地系统上创建了该文件夹。请尝试使用Eclipse创建该文件夹并将文件拖动到其中文件位于:mnt\sdcard\Music(在模拟器上)我使用以下代码:File path=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY\u Music);File[]songs=path.listFiles();for(int I=0;I