मेरे पास एक ऐप है जो कस्टम फ़ाइल प्रकार (.sor) उत्पन्न करता है। ऐप के अंदर मेरे पास संलग्न इन फ़ाइलों में से एक के साथ एक ईमेल भेजने के लिए एक सुविधा है। मेरे पास ऐप की सूची में ऐप दिखाने की अनुमति देने के लिए एक इरादा फ़िल्टर भी है जो इस प्रकार की फ़ाइल खोल सकता है। यह मुझे फोन पर उपयोगकर्ता ईमेल क्लाइंट से सीधे ऐप के साथ फ़ाइल खोलने की अनुमति देता है।एंड्रॉइड: मेरे ऐप के साथ ईमेल अटैचमेंट खोलने के लिए इरादा फ़िल्टर पंजीकृत करना
हालांकि, यह केवल तब काम करता है जब ईमेल किसी पीसी ईमेल क्लाइंट से आता है, और फ़ोन से ईमेल प्राप्त होने पर काम नहीं करेगा। उदाहरण के लिए, यदि मैं इनमें से एक .sor फ़ाइलों को उत्पन्न करता हूं और फिर अपने ऐप का उपयोग अपने ईमेल खाते में एक ईमेल भेजने के लिए करता हूं तो मुझे अपने फोन पर ईमेल प्राप्त होगा लेकिन मेरे ऐप के साथ लगाव खोलने में सक्षम नहीं होगा ... लेकिन , अगर मैं एक ही खाते में ईमेल भेजता हूं और फोन पर बजाए अपने पीसी (थंडरबर्ड के साथ) खोलता हूं और फिर इसे अग्रेषित करता हूं या इसे अपने फोन पर एक नया ईमेल भेजता हूं तो मैं उसी ईमेल ऐप का उपयोग कर पाऊंगा फोन पर मेरे ऐप के साथ लगाव खोलने के लिए ... मैं केवल एक ईमेल अकाउंट के बारे में बात कर रहा हूं, केवल अंतर यह है कि ईमेल, मेरे फोन या मेरी विंडोज 7 पीसी से भेजा गया था।
एकमात्र चीज जो मैं सोच सकता हूं वह यह है कि जब मैं फोन से ईमेल भेजता हूं तो जब मैं इसे अपने पीसी पर थंडरबर्ड से भेजता हूं तो अटैचमेंट में एक अलग माइम-प्रकार एम्बेड किया जा रहा है ... मैं माइम प्रकार निर्दिष्ट करता हूं जब मैं अपने ऐप से ईमेल भेजता हूं, तो "एप्लिकेशन/ऑक्टेट-स्ट्रीम" के रूप में, और मेरे पास एक इरादा फ़िल्टर है जो इस माइम प्रकार की तलाश करता है ... लेकिन यह सही तरीके से काम नहीं करता है।
मेरे लक्ष्य फ़िल्टर:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/octet-stream" />
<data android:scheme="file" />
</intent-filter>
आशय है कि मैं जब फोन से एक ईमेल संलग्नक में फ़ाइल को भेजने फोन ईमेल क्लाइंट के पास:
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("application/octet-stream");
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + fullPathString));
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "FiberDroid OTDR Trace File: \"" + ContextMenuFileName + "\"");
sendIntent.putExtra(Intent.EXTRA_TEXT, "This e-mail was sent from the TTI FiberDroid Android application.");
startActivity(Intent.createChooser(sendIntent, "Select E-Mail Application"));
फिर, भेजने संलग्न फाइल के साथ ईमेल सही ढंग से काम करता है ... और यदि मैं एक ही फाइल को एक पीसी ईमेल क्लाइंट (जैसे दृष्टिकोण या थंडरबर्ड) से फोन पर वापस ईमेल करता हूं तो मैं सीधे अपने फोन के साथ फोन ईमेल ऐप से फ़ाइल खोलने में सक्षम हूं । समस्या यह है कि, अगर मैं अपने पीसी के माध्यम से बिना किसी मध्यस्थ के फोन पर ईमेल खोलता हूं, तो मैं अटैचमेंट नहीं खोल सकता, मुझे दिया गया एकमात्र विकल्प "एसडी कार्ड में सहेजें" है ...
तो संक्षेप में, मेरे फोन पर मेरे पास 2 ईमेल हैं जो एक ही फाइल संलग्न हैं और मूल रूप से मेरे आवेदन से उसी खाते में भेजे गए हैं (दोनों एक ही खाते से प्राप्त होते हैं), लेकिन मेरे पीसी के माध्यम से जो एक में संलग्न है अनावश्यक बिचौलिया सही तरीके से काम करता है, और सीधे मेरे फोन से भेजा और प्राप्त किया गया है।
कोई विचार? पहले ही, आपका बहुत धन्यवाद।
क्षमा करता है, तो ऐसा लगता है मैं बार-बार यह बताया गया है, यह मेरे लिए भ्रमित लग रहा था के रूप में मैं इसे लिखा था तो मैं यह जानना लोगों को पढ़ने में भ्रमित हो जाएगा ... – CHollman82