2012-09-21 20 views
8

में नया माइम प्रकार पंजीकृत करें यह प्रश्न how to open an attachment with my applicacion from within the email app? (mime type, intent filter ...) से संबंधित है, जिसे मैंने सोचा था कि मैंने इसे हल किया है, लेकिन ऐसा नहीं है।एंड्रॉइड

मैंने पाया कि कुछ ईमेल क्लाइंट (उदाहरण के लिए, ईमेल क्लाइंट में निर्मित सैमसंग गैलेक्सी एसआईआई) sendIntent.setType() विधि का सम्मान नहीं करता है और किसी ईमेल में अनुलग्नक जोड़ते समय यह निर्दिष्ट माइम-प्रकार नहीं जोड़ रहा है सेट टाइप विधि में। नतीजा यह है कि जब ईमेल आता है तो मैं अटैचमेंट नहीं खोल सकता।

इसलिए किसी भी ईमेल क्लाइंट से अनुलग्नक खोलने में सक्षम होने के लिए मुझे लगता है कि मेरे पास एकमात्र तरीका है जो मेरे कस्टम एक्सटेंशन से जुड़ा एक नया माइम प्रकार बनाना है।

लेकिन मुझे एक नया माइम प्रकार पंजीकृत करने का कोई तरीका नहीं मिल रहा है। मुझे पता है कि यह कुछ ऐप्स (एस्ट्रो फ़ाइल एक्सप्लोरर) के रूप में किया जा सकता है, लेकिन मुझे नहीं पता कि एक नया माइम प्रकार जोड़ने के बारे में जानकारी कहां देखना है।

संपादित करें (2012, अक्टूबर, 1) एस्ट्रो फ़ाइल एक्सप्लोरर इसकी प्रक्रिया के लिए केवल माइम प्रकार जोड़ता है। उन्हें अपनी प्रक्रिया के बाहर नहीं पढ़ा जा सकता है, इसलिए मेरे पास कोई उदाहरण नहीं है जहां यह काम करता है।

मैं MimeTypeMap स्रोत कोड देख रहा हूं और ऐसा लगता है कि यह केवल माइम प्रकारों के एक पूर्वनिर्धारित सेट का उपयोग करता है और आप एक नया जोड़ नहीं सकते हैं।

मैंने प्रतिबिंब (बस जांचने के लिए) का उपयोग करने की कोशिश की और एक माइम प्रकार जोड़ने में सक्षम था, लेकिन यह केवल मेरी प्रक्रिया के लिए दृश्यमान है, जैसे कि मेरी प्रक्रिया में माइम टाइपपेप की अपनी प्रति थी, इसलिए ईमेल क्लाइंट अभी भी नहीं होगा लगाव खोलो।

कोई मदद कर सकता है? अग्रिम

+0

मुझे नहीं लगता कि यह संभव है। मैंने कुछ समय पहले देखने की कोशिश की और छोड़ दिया। यह मेरे लिए अच्छा नहीं होगा मेरे लिए जरूरी नहीं है। – Ifor

उत्तर

1

में

धन्यवाद यह मेरी समझ है कि आपके डेटा विनिर्देश फाइल एक्सटेंशन .xyz पर पूरी तरह आधार है। तो जब आप इसे अपने इरादे फ़िल्टर में घोषित करते हैं, तो आपको यह सुनिश्चित करना होगा कि patternPath को छोड़कर आप सभी मानकों के प्रति जितना संभव हो उतना सामान्य हो।

कोशिश यह विभाजित कई <data> टैग में और mimeType की ओर यकीन है कि यह नास्तिक है बनाने:

<data android:scheme="file" />        
    <data android:mimeType="*/*" /> 
    <data android:pathPattern=".*\\.xyz" /> 
    <data android:host="*" /> 

भी देखें the documentation on <data> सुनिश्चित करें कि सभी उप-प्रकारों मिलान करने के लिए।

यह मेरी समझ है कि आपकी फ़ाइल की अंतर्निहित डेटा संरचना कुछ उपकरणों पर समस्याएं पैदा कर सकती है। मान लीजिए कि आपके .xyz फ़ाइल प्रकार एक्सएमएल है; ई-मेल क्लाइंट सोच सकता है कि text/xml माइम प्रकार प्रदान करने से आपके द्वारा घोषित की गई तुलना में अधिक विशिष्ट है, और इसके बजाए इसका आह्वान करें।

ऐसे मामलों में, एक समाधान कई इरादे फ़िल्टर घोषित करने के बजाय हो सकता है, एक बार <data android:mimeType="text/xml" /> भी शामिल है। (this answer सुझावों के साथ यह कम या कम है।)

+0

मैंने पहले से ही कोशिश की है और यह कुछ ईमेल क्लाइंट (एसजीआईआई) के लिए भी काम नहीं करता है – richardtz

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

  • कोई संबंधित समस्या नहीं^_^