2013-01-03 17 views
8

मेरे एंड्रॉइड एप्लिकेशन में मैं एमपी 3 फ़ाइलों को चुनने और अपलोड करने के लिए नीचे दिए गए कोड का उपयोग कर रहा हूं।
मैं जानना चाहता हूं कि फ़ाइलों को उनके प्रकार के साथ अपनी अवधि के साथ फ़िल्टर करना संभव है।क्या Intent.createchooser का उपयोग करते समय .mp3 फ़ाइल की अवधि के साथ फ़िल्टर करना संभव है?

Intent intent = new Intent(); 
intent.setType("audio/*");    
intent.setAction(Intent.ACTION_GET_CONTENT); 
try { 
    startActivityForResult(Intent.createChooser(intent, "Select your Audio"), Global.FILE_FROM_SD); 
} 
catch (android.content.ActivityNotFoundException ex) { 
    // Potentially direct the user to the Market with a Dialog 
    Toast.makeText(WizardStep1.this, 
      "Please install a File Manager.", 
      Toast.LENGTH_SHORT).show(); 
} 

उत्तर

2

मैं तो जिस तरह से आप कैसे शुरू नहीं लगता कि, या कम से कम नहीं।

मेरा मानना ​​है कि एक बार आप आशय चयनकर्ता बनाया और एक अन्य फ़ाइल प्रबंधक खोला, तो आप कौन-सा डेटा, कि विशेष रूप से फ़ाइल प्रबंधक प्रदर्शित करने के लिए एक विशेष मापदंड द्वारा फ़िल्टर की तरह नियंत्रित नहीं कर सकते।

समाधान मैं यहाँ देखते हैं, एक विधि है कि returns all audio files from sdcard एक सरणी में है, तो एक फिल्टर अपनी फ़ाइलें (.mp3) के विस्तार का निर्धारण करने के conjuction में एक विधि है कि gets the duration of a file के साथ उपयोग बनाने के लिए है।
, उदाहरण के प्रदर्शन के लिए एक ListView में एक नई सरणी के लिए फ़िल्टर सामग्री जोड़ें, और उसके बाद आप अपने फ़िल्टर्ड फाइलों के साथ करना चाहते हैं और उपयोगकर्ता हैं, जो वह अपलोड करना चाहते हैं चुन सकते हैं।

एक स्यूडोकोड इस तरह दिखेगा:

ArrayList<String> filteredFiles = new ArrayList<String>(); 

String[] audioFiles = getAllAudioFiles(); 
for (String file : audioFiles) { 
    if (file.endsWith(".mp3") && getDuration(file) >= DURATION_CONSTANT) { 
     filteredFiles.add(file); 
    } 
} 

फिर एक ListView में filteredFiles की सामग्री को प्रदर्शित और का चयन/फ़ाइल को अपलोड करने के लिए उपयुक्त तर्क प्रदान करते हैं।

+0

के लिए धन्यवाद धन्यवाद एंडी रेस –

2

AFAIK, यह संभव नहीं है। इरादा रिसीवर audio/*

एमआईएम प्रकारों का उद्देश्य मीडिया के प्रकार को व्यक्त/अनुरोध/स्वीकार करने के प्रकार को व्यक्त करना है। यह किसी भी गुण (AFAIK)

यहां तक ​​कि अगर यह था, मैं एंड्रॉयड आवेदनों की एक मुट्ठी भर से ज्यादा नहीं लगता कि यह अपने परिदृश्य को पूरा करने का समर्थन करने के लिए परेशान करेगा समर्थन नहीं करता।

यदि आप ऐसे अतिरिक्त डेटा को स्वीकार करने में सहायता करने वाले ऐप को पा सकते हैं तो आपको Intent.putExtra (String name, Bundle value) का उपयोग करके एक विशिष्ट भाग्य आवेदन विशिष्ट 'अतिरिक्त' डेटा होगा। लोकप्रिय ES File Explorer ऐप इसका समर्थन नहीं करता है, इसलिए मुझे नहीं लगता कि यह आपके अधिकांश उपयोगकर्ताओं के लिए काम करेगा।

+0

आप Madushan धन्यवाद, मैं भी इस तरह से सोच रहा हूँ confirm.once करने की जरूरत है फिर से अपने मूल्यवान जवाब –

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

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