I have mp3 files on sd card . how to get the path of file from sd card on selecting the file?
dynamically !...like if user click on file in list view its path get in variable for use.
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();
}
});
}
}
To get the file you should use something like this
Then you can decode the file with the byte you got.
I think you want to get file from a file open dialog, check out the below link
Reference: Choose File Dialog
You can get path of SD card with the help of command below:
So path will be
Reference is: Android how to use Environment.getExternalStorageDirectory()
Or you can try:
Reference: How can I get external SD card path for Android 4.0+?
You can use
getExternalStorageDirectory()
to get the root of the sd card as aFile
objectI have got solution on this after 4 days. Please note following points while giving path to File class in Android(Java):
Use path for internal (call external in android) storage
in memory card
mention permissions in Manifest file.
First check file length for confirmation.
Check paths in ES File Explorer regarding sdcard0 & sdcard1 is this same or else...... e.g.
i think this code will work with you ... try it and follow me with results
public class SongsManager {
}