यदि आपको फ़ाइल नाम पता है, तो मुझे एक विशिष्ट फ़ाइल (मीडिया के लिए सभी फ़ाइलों को स्कैन करने के लिए इसे चलाने के लिए) पर मीडिया स्कैनर चलाने के लिए यह सबसे अच्छा (तेज़/कम ओवरहेड) मिला है। यहाँ है विधि मैं का उपयोग करें:
/**
* Sends a broadcast to have the media scanner scan a file
*
* @param path
* the file to scan
*/
private void scanMedia(String path) {
File file = new File(path);
Uri uri = Uri.fromFile(file);
Intent scanFileIntent = new Intent(
Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri);
sendBroadcast(scanFileIntent);
}
जब एक से अधिक फ़ाइलों को चलाने के लिए की आवश्यकता होगी, (जैसे कि जब एक से अधिक चित्रों के साथ एप्लिकेशन का आरंभ के रूप में), मैं नए चित्र फ़ाइल नाम का एक संग्रह रखने जबकि आरंभ करें, और तब उपरोक्त विधि चलाने प्रत्येक नई छवि फ़ाइल के लिए। नीचे दिए गए कोड में, addToScanList
फ़ाइलों को ArrayList<T>
पर स्कैन करने के लिए जोड़ता है, और scanMediaFiles
सरणी में प्रत्येक फ़ाइल के लिए स्कैन शुरू करने के लिए उपयोग किया जाता है।
private ArrayList<String> mFilesToScan;
/**
* Adds to the list of paths to scan when a media scan is started.
*
* @see {@link #scanMediaFiles()}
* @param path
*/
private void addToScanList(String path) {
if (mFilesToScan == null)
mFilesToScan = new ArrayList<String>();
mFilesToScan.add(path);
}
/**
* Initiates a media scan of each of the files added to the scan list.
*
* @see {@see #addToScanList(String)}
*/
private void scanMediaFiles() {
if ((mFilesToScan != null) && (!mFilesToScan.isEmpty())) {
for (String path : mFilesToScan) {
scanMedia(path);
}
mFilesToScan.clear();
} else {
Log.e(TAG, "Media scan requested when nothing to scan");
}
}
या धन्यवाद, मुझे आशा है कि इससे मुझे बहुत मदद मिलेगी, मैं इस कोड के साथ प्रयास करूंगा। – user1806231
इसके लिए बहुत अच्छा +1, मैं इसका उपयोग करूंगा और फीडबैक दूंगा, मैं संगीत फ़ाइलों और प्लेलिस्ट के साथ उपयोग करूंगा – Ahmed