2

내 안드로이드 응용 프로그램에서 SD 카드에서 노래를 가져오고 싶지만 특정 파일의 경로를 가져올 수 없습니다. 지원하지 않는 Android API 레벨 7을 사용하고 있습니다. 다음 방법.android에서 SD 카드의 노래 경로 가져 오기

Environment.getExternalStoragePublicDirectory (Environment.DIRECTORY_MUSIC); 

또한 다음 코드를 시도 :

path = Environment.getExternalStorageDirectory(); 

하지만 난 음악 file.Please의 경로를 지정하는 방법을 모른다는 일부 solution.Thanx을 제안한다.

+0

SDCard에있는 파일은 어디에 있습니까? –

+0

노래는/sdcard 디렉토리에있는 폴더에서 가져와야합니다. – zanky

답변

5

SD 카드에서 경로 및 노래 이름을 가져옵니다. MediaStore에서 노래 경로를 찾을 수 있습니다.

미디어 공급자는 내부 및 외부 저장 장치 모두에서 사용 가능한 모든 미디어에 대한 메타 데이터를 포함합니다.

+0

다운 투표 사유를 알고 싶습니까? –

+2

벽/설명이없는 코드 조각. –

+0

@LalitPoptani 이제 괜찮습니까? –

1

전체 파일 포맷을 스캔 할 수 있습니다. 여기서 mp3 및 mp4로 사용합니다.
이 형식은 필요한 모든 형식에 사용할 수 있습니다.

/** To store the available media files */ 
    private List<String> mediaList = new ArrayList<String>(); 

    externalStoragePath = Environment.getExternalStorageDirectory() 
       .getAbsolutePath(); 

     targetDir = new File(externalStoragePath); 

     Log.d(" externalStoragePath ::: ", targetDir.getAbsolutePath()); 
public File[] mediaFiles = targetDir.listFiles(); 

/** 
    * scanFiles 
    * 
    * @param scanFiles 
    */ 
    public void scanFiles(File[] scanFiles) { 

     if (scanFiles != null) { 
      for (File file : scanFiles) { 

       if(mediaList.size() > 4){ 
        return; 
       } 

       if (file.isDirectory()) { 
        // Log.d(" scaned File ::isDirectory: ", 
        // file.getAbsolutePath()); 
        scanFiles(file.listFiles()); 

       } else { 

        addToMediaList(file); 

       } 

      } 
     } else { 

      Log.d(SCANNER, 
        " *************** No file is available ***************"); 

     } 
    } 



/** 
    * 
    * @param file 
    */ 

    private void addToMediaList(File file) { 

     if (file != null) { 

      String path = file.getAbsolutePath(); 

      int index = path.lastIndexOf("."); 

      String extn = path.substring(index + 1, path.length()); 

      if (extn.equalsIgnoreCase("mp4") || extn.equalsIgnoreCase("mp3")) {// || 

       Log.d(" scanned File ::: ", file.getAbsolutePath() 
         + " file.getPath() " + file.getPath());// extn.equalsIgnoreCase("mp3")) 
                    // { 
       Log.d(SCANNER, " ***** above file is added to list "); 
       mediaList.add(path); 


      } 
     } 

    } 
관련 문제