2012-01-20 21 views
6

के माध्यम से एकाधिक फ़ाइलों को भेजना मैंने ब्लूटूथ के माध्यम से फ़ाइल भेजने के बारे में आपका जवाब देखा। (जून 13 '11 को 5:01 बजे उत्तर दिया गया)ब्लूटूथ

Intent i = new Intent(Intent.ACTION_SEND); i.setType("image/jpeg"); 
i.putExtra(Intent.EXTRA_STREAM, Uri.parse("/sdcard/file.jpg")); 
startActivity(Intent.createChooser(i, "Send Image")); 

हाँ! यह काम करता हैं। यह फ़ाइल भेजने के लिए एक डिफ़ॉल्ट ब्लूटूथ उपकरण/विंडो/संवाद खुल जाएगा। लेकिन क्या आप कृपया मुझे सिखाएंगे कि अधिक फाइलें कैसे भेजें? यहां मेरा कोड है ...

String xFile[3] = { "aa.txt", "bb.txt", "cc.txt" }; 

Intent i = new Intent(Intent.ACTION_SEND); i.setType("text/plain"); 

for (int i = 0; i < 3; i ++) { 
    intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File(xFile[i]))); 
    startActivity(intent); 
} 

यह काम करता है, लेकिन यह डिफ़ॉल्ट ब्लूटूथ टूल/विंडो/संवाद को 3 बार खोल देगा! @@ यदि 10 फाइलें हैं, तो यह डिफ़ॉल्ट ब्लूटूथ टूल/विंडो/संवाद 10 बार खुल जाएगी !!

क्या मुझे पता है कि एक बार डिफ़ॉल्ट ब्लूटूथ टूल/विंडो/संवाद कैसे खोलें, फिर सभी फाइलें भेजें?

अग्रिम में बहुत बहुत धन्यवाद!

उत्तर

1

यह काफी सरल अभ्यास है लेकिन यह लागत के साथ आता है! एसडीकार्ड भंडारण स्थान।

हां, आपको उद्देश्य के लिए एसडीकार्ड पर एकाधिक फ़ाइलों को डंप करने की आवश्यकता है।

प्रत्येक फ़ाइल को एसडीकार्ड में डालने के लिए आपको Uri की सरणी सूची बनाने की आवश्यकता है।

ArrayList<Uri> listDumpedFileUris = new ArrayList<Uri>(); 
Uri uriFile = Uri.fromFile(new File(dumpedFilePath)); 
listDumpedFileUris.add(uriFile); 

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

Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE); 
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, listDumpedFileUris); 
startActivity(Intent.createChooser(intent, "Send these files using...")); 

तब चयनित सभी फाइलें एंड्रॉइड की ब्लूटूथ रन-टाइम सुविधा के माध्यम से भेजी जाएंगी। वैसे, आप स्पष्ट रूप से image/jpeg के रूप में उदाहरण के लिए, फ़ाइलों के लिए setType निर्दिष्ट करने के लिए, हो सकता है:

intent.setType("image/jpeg"); 

केवल जिम्मेदारी अपनी ओर SDCard फ़ाइल-प्रणाली के अवशेष को साफ करने पर है जो अधिकांश भाग के लिए कुछ है, एंड्रॉइड उपयोगकर्ता बिल्कुल नाराज हैं!

5

अच्छा, यह निम्न माध्यमों से किया जा सकता है। फ़ाइलों को भेजने की सूची को mMultiSelectData द्वारा इंगित किया जाना चाहिए।

ArrayList<Uri> uris = new ArrayList<Uri>(); 
int length = mMultiSelectData.size(); 
Intent mail_int = new Intent(); 
mail_int.setAction(android.content.Intent.ACTION_SEND_MULTIPLE); 
mail_int.setType("*/*"); 
for(int i = 0; i < length; i++) { 
    File file = new File(mMultiSelectData.get(i)); 
    uris.add(Uri.fromFile(file)); 
} 
mail_int.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris); 
mContext.startActivity(mail_int); 

यह एक चयन बॉक्स खुल जाएगा। Bluetooth चुनें और फ़ाइलों की सूची भेजी जाएगी।

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