来自SD卡的文件路径

Raf*_*lah 1 android android-intent

我在SD卡上有mp3文件.如何在选择文件时从SD卡获取文件路径?

动态!...如果用户在列表视图中单击文件,其路径将获取变量以供使用.

public class PlayListActivity extends ListActivity {
    // Songs list
    public ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.playlist);    
        ArrayList<HashMap<String, String>> songsListData = new ArrayList<HashMap<String, String>>();    
        SongsManager plm = new SongsManager();
        // get all songs from sdcard
        this.songsList = plm.getPlayList();

        // looping through playlist
        for (int i = 0; i < songsList.size(); i++) {
            // creating new HashMap
            HashMap<String, String> song = songsList.get(i);

            // adding HashList to ArrayList
            songsListData.add(song);
        }    
        // Adding menuItems to ListView
        ListAdapter adapter = new SimpleAdapter(this, songsListData,
                R.layout.playlist_item, new String[] { "songTitle" }, new int[] {
                        R.id.songTitle });

        setListAdapter(adapter);

        // selecting single ListView item
        ListView lv = getListView();
        // listening to single listitem click
        lv.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                // getting listitem index
                int songIndex = position;

                // Starting new intent
                Intent in = new Intent(getApplicationContext(),
                        AndroidBuildingMusicPlayerActivity.class);
                // Sending songIndex to PlayerActivity
                in.putExtra("songIndex", songIndex);
                setResult(100, in);
                // Closing PlayListView
                finish();
            }
        });    
    }
}
Run Code Online (Sandbox Code Playgroud)

Ami*_*han 6

我想你想从文件打开对话框中获取文件,请查看以下链接

参考:选择文件对话框

你可以在下面的命令的帮助下获得SD卡的路径:

String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
String fileName = "myFile.mp3";
Run Code Online (Sandbox Code Playgroud)

所以道路将是

String path  = baseDir + "/your folder(s)/" + fileName;
Run Code Online (Sandbox Code Playgroud)

参考是:Android如何使用Environment.getExternalStorageDirectory()

或者您可以尝试:

new File("/mnt/external_sd/your folder(s)../file.mp3");//get a file from SD card
Run Code Online (Sandbox Code Playgroud)

参考:如何获得Android 4.0+的外部SD卡路径?