12

मैं एंड्रॉइड के लिए नया हूं। मैं छवि कैप्चर करते समय मीडिया स्कैनर चलाता हूं। कैप्चरिंग के बाद, छवि को ग्रिड व्यू में अपडेट किया गया है। इसके लिए मुझे मीडिया स्कैनर चलाने की जरूरत है। मैं मीडिया स्कैनर चलाने के लिए दो समाधान पाया एक प्रसारण घटना है और एक दूसरे को चल मीडिया स्कैनर वर्ग है। मुझे लगता है कि आइसक्रीम सैंडविच (4.0) मीडिया स्कैनर क्लास में पेश किया गया है। इससे पहले संस्करणों को मीडिया स्कैनर चलाने के लिए प्रसारण ईवेंट सेट करने की आवश्यकता है।एंड्रॉइड में मीडिया स्कैनर कैसे चलाएं

कोई भी मुझे मार्गदर्शन कर सकता है कि मीडिया स्कैनर को सही तरीके से कैसे चलाया जाए।

उत्तर

23

यदि आपको फ़ाइल नाम पता है, तो मुझे एक विशिष्ट फ़ाइल (मीडिया के लिए सभी फ़ाइलों को स्कैन करने के लिए इसे चलाने के लिए) पर मीडिया स्कैनर चलाने के लिए यह सबसे अच्छा (तेज़/कम ओवरहेड) मिला है। यहाँ है विधि मैं का उपयोग करें:

/** 
* 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"); 
    } 
} 
+0

या धन्यवाद, मुझे आशा है कि इससे मुझे बहुत मदद मिलेगी, मैं इस कोड के साथ प्रयास करूंगा। – user1806231

+0

इसके लिए बहुत अच्छा +1, मैं इसका उपयोग करूंगा और फीडबैक दूंगा, मैं संगीत फ़ाइलों और प्लेलिस्ट के साथ उपयोग करूंगा – Ahmed

संबंधित मुद्दे