我无法列出Android设备中的文件

时间:2016-02-02 09:27:02

标签: android

我是android的初学者,我想创建一个简单的MP3播放器。但是我得到了以下例外。

  

NullPointerException - 尝试获取null数组的长度。

使用adb shell我在该路径中验证了mp3文件是否存在。     这是我的代码

活动类

public class Display extends ListActivity {
   Button stop;
   private static final String PATH = new String("/sdcard/");
   private List<String> songs = new ArrayList<String>();
   private MediaPlayer mp = new MediaPlayer();
   private ListView mainListView ;
   String name;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.listview);
      stop = (Button) findViewById(R.id.stopbtn);
      mainListView = getListView();
      updatePlayList();
   }

   private void setButtonOnClickListeners(){
       stop.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v) {
            mp.stop();
        }
    });}

   @Override
   protected void onListItemClick(ListView list, View view, int position, long id){
    try{
        mp.reset();
        mp.setDataSource(PATH + songs.get(position));
        mp.prepare();
        mp.start();
    }catch(IOException e){
        Log.v("test", e.getMessage());
    }}


    private void updatePlayList() {

        File home = new File(PATH);
        for (File f : home.listFiles()) { // This line causes the exception
            if (f.isFile())
                name = f.getName();
            if(name.contains(".MP3") || name.contains(".mp3")) {
                ArrayAdapter<String> songList = new ArrayAdapter<String>(this, R.layout.simplerow, songs);
                mainListView.setAdapter(songList);
            }
        }
}

}

我还在清单文件中添加了读取权限。我尝试了

  

Environment.getExternalStorageDirectory()

也。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

问题已修复。我们应该在正确的地方给予使用许可。它应该是清单的孩子和应用程序的同伴