Android
Mediastore
खोज…
डिवाइस के विशिष्ट फ़ोल्डर से ऑडियो / एमपी 3 फ़ाइलों को प्राप्त करें या सभी फ़ाइलों को प्राप्त करें
डिवाइस भंडारण पहुंच को सक्षम करने के लिए सबसे पहले, अपनी परियोजना के प्रकटन के लिए निम्नलिखित अनुमतियों को जोड़ें:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
फिर, फ़ाइल AudioModel.class बनाएं और सूची आइटम प्राप्त करने और सेट करने की अनुमति देने के लिए इसमें निम्न मॉडल वर्ग रखें:
public class AudioModel {
String aPath;
String aName;
String aAlbum;
String aArtist;
public String getaPath() {
return aPath;
}
public void setaPath(String aPath) {
this.aPath = aPath;
}
public String getaName() {
return aName;
}
public void setaName(String aName) {
this.aName = aName;
}
public String getaAlbum() {
return aAlbum;
}
public void setaAlbum(String aAlbum) {
this.aAlbum = aAlbum;
}
public String getaArtist() {
return aArtist;
}
public void setaArtist(String aArtist) {
this.aArtist = aArtist;
}
}
अगला, अपने डिवाइस के किसी फ़ोल्डर से सभी एमपी 3 फ़ाइलों को पढ़ने के लिए या अपने डिवाइस की सभी फ़ाइलों को पढ़ने के लिए निम्न विधि का उपयोग करें:
public List<AudioModel> getAllAudioFromDevice(final Context context) {
final List<AudioModel> tempAudioList = new ArrayList<>();
Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
String[] projection = {MediaStore.Audio.AudioColumns.DATA, MediaStore.Audio.AudioColumns.TITLE, MediaStore.Audio.AudioColumns.ALBUM, MediaStore.Audio.ArtistColumns.ARTIST,};
Cursor c = context.getContentResolver().query(uri, projection, MediaStore.Audio.Media.DATA + " like ? ", new String[]{"%utm%"}, null);
if (c != null) {
while (c.moveToNext()) {
AudioModel audioModel = new AudioModel();
String path = c.getString(0);
String name = c.getString(1);
String album = c.getString(2);
String artist = c.getString(3);
audioModel.setaName(name);
audioModel.setaAlbum(album);
audioModel.setaArtist(artist);
audioModel.setaPath(path);
Log.e("Name :" + name, " Album :" + album);
Log.e("Path :" + path, " Artist :" + artist);
tempAudioList.add(audioModel);
}
c.close();
}
return tempAudioList;
}
उपरोक्त कोड संगीत की नाम, पथ, कलाकार और एल्बम के साथ सभी एमपी 3 फ़ाइलों की सूची लौटाएगा। अधिक जानकारी के लिए कृपया Media.Store.Audio प्रलेखन देखें।
किसी विशिष्ट फ़ोल्डर की फ़ाइलों को पढ़ने के लिए, निम्नलिखित क्वेरी का उपयोग करें (आपको फ़ोल्डर नाम बदलने की आवश्यकता है):
Cursor c = context.getContentResolver().query(uri,
projection,
MediaStore.Audio.Media.DATA + " like ? ",
new String[]{"%yourFolderName%"}, // Put your device folder / file location here.
null);
यदि आप अपने डिवाइस से सभी फ़ाइलों को पुनर्प्राप्त करना चाहते हैं, तो निम्न क्वेरी का उपयोग करें:
Cursor c = context.getContentResolver().query(uri,
projection,
null,
null,
null);
नोट: भंडारण पहुंच अनुमतियों को सक्षम करने के लिए मत भूलना।
अब, आपको केवल एमपी 3 फ़ाइलों को प्राप्त करने के लिए उपरोक्त विधि को कॉल करना है:
getAllAudioFromDevice(this);
गतिविधि के साथ उदाहरण
public class ReadAudioFilesActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_audio_list);
/**
* This will return a list of all MP3 files. Use the list to display data.
*/
getAllAudioFromDevice(this);
}
// Method to read all the audio/MP3 files.
public List<AudioModel> getAllAudioFromDevice(final Context context) {
final List<AudioModel> tempAudioList = new ArrayList<>();
Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
String[] projection = {MediaStore.Audio.AudioColumns.DATA,MediaStore.Audio.AudioColumns.TITLE ,MediaStore.Audio.AudioColumns.ALBUM, MediaStore.Audio.ArtistColumns.ARTIST,};
Cursor c = context.getContentResolver().query(uri, projection, MediaStore.Audio.Media.DATA + " like ? ", new String[]{"%utm%"}, null);
if (c != null) {
while (c.moveToNext()) {
// Create a model object.
AudioModel audioModel = new AudioModel();
String path = c.getString(0); // Retrieve path.
String name = c.getString(1); // Retrieve name.
String album = c.getString(2); // Retrieve album name.
String artist = c.getString(3); // Retrieve artist name.
// Set data to the model object.
audioModel.setaName(name);
audioModel.setaAlbum(album);
audioModel.setaArtist(artist);
audioModel.setaPath(path);
Log.e("Name :" + name, " Album :" + album);
Log.e("Path :" + path, " Artist :" + artist);
// Add the model object to the list .
tempAudioList.add(audioModel);
}
c.close();
}
// Return the list.
return tempAudioList;
}
}