1 year ago
#374278
SilverCoder
How can I access to music directory in Android 10 (API 29)
I am trying to make a music player but I can't reach the music directories on API 29 devices since some methods are Deprecated in API level 29 and getExternalStorageDirectory() is added at API 30.enter
`public ArrayList findSong(File file) { ArrayList arraylist = new ArrayList<>();
File f = file;
File[] files = null;
try {
files = f.listFiles();
if (files.length > 0) {
for (File singleFile : files) {
if (singleFile.isDirectory() && !singleFile.isHidden() ) {
arraylist.addAll(findSong(singleFile));
} else {
if (singleFile.getName().endsWith(".mp3") || singleFile.getName().endsWith(".m4a")) {
arraylist.add(singleFile);
}
}
}
} else {
}
}
catch (NullPointerException e) {
toastMsg("Error : " + e + " " + e.getStackTrace()[0].getLineNumber());
}
return arraylist;
}
private void toastMsg(String s) {
}
void displaySongs()
{
final ArrayList<File> mySongs = findSong(Environment.getExternalStorageDirectory());
items = new String[mySongs.size()];
for (int i = 0; i<mySongs.size(); i++)
{
items[i] = mySongs.get(i).getName().toString().replace(".mp3","").replace(".m4a","");
}
customAdapter customAdapter = new customAdapter();
listView.setAdapter(customAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
String songName = (String) listView.getItemAtPosition(i);
startActivity(new Intent(getApplicationContext(), PlayerActivity.class).putExtra("songs", mySongs).putExtra("songname", songName).putExtra("pos",i));
}
});
}`
android
arrays
directory
path
environment
0 Answers
Your Answer