2013-01-10 15 views
9

मैं अब दिनों से इसके साथ संघर्ष कर रहा हूं।ऐप में कस्टम फ़ाइल प्रकार जीमेल अटैचमेंट

मैं जीमेल के साथ एक विशिष्ट कस्टम फ़ाइल प्रकार खोलने के लिए इरादे फ़िल्टर के माध्यम से अपनी गतिविधि को पंजीकृत करने का प्रयास कर रहा हूं।

समस्या कोई फर्क नहीं पड़ता कि मैं क्या कोशिश करता हूं, या तो मुझे फ़ाइल खोलने का विकल्प नहीं मिलता है या किसी फ़ाइल प्रकार (मेरा सहित) के किसी भी अनुलग्नक को मेरे आवेदन के साथ खोलने का विकल्प नहीं दिया जाता है।

मुझे विश्वास है कि समस्या यह है कि जीमेल द्वारा प्रदान की गई यूआरआई में इसके अंदर कोई फ़ाइल विवरण नहीं है।

ऐसे बहुत से लोग हैं जिन्होंने इस प्रश्न से पूछा है, हालांकि उनमें से सभी का समाधान इरादे फ़िल्टर को केवल कस्टम फ़ाइल प्रकार तक ही सीमित नहीं करता है।

मेरे Android प्रकट में मौजूदा लक्ष्य फ़िल्टर निम्न ...

  <intent-filter> 
       <action android:name="android.intent.action.VIEW" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
       <data 
        host="*" 
        android:mimeType="*/*" 
        android:pathPattern=".*\\.abc" 
        android:scheme="content" /> 
      </intent-filter> 

बस दोहराते हैं, इस लक्ष्य फ़िल्टर अपने आवेदन के साथ जीमेल से किसी भी अनुलग्नक खोलने के लिए विकल्प जोड़ता है।

किसी भी मदद की बहुत सराहना की जाएगी

+0

हम संलग्नक फ़ाइल मेल पर भेजना चाहते हैं ... – NagarjunaReddy

उत्तर

5

वहाँ जरूरी फाइलों की ओर इशारा करते content://Uri मूल्यों पर फाइल एक्सटेंशन नहीं है। AFAIK, जीमेल में उनके पास फ़ाइल एक्सटेंशन शामिल नहीं है, और इसलिए यह आपके pathPattern से मेल नहीं खाएगा। इसके अलावा, host में android: नामस्थान उपसर्ग अनुपलब्ध है।

यदि ईमेल आपकी फ़ाइल के लिए एक अलग एमआईएम प्रकार के साथ भेजा जाएगा, तो android:mimeType में इसका उपयोग करें और शेष <data> विशेषताओं को छोड़ दें। यदि ईमेल आपकी फ़ाइल के लिए एक अलग MIME प्रकार के साथ नहीं भेजा जाएगा, तो AFAIK आप भाग्य से बाहर हैं।

+0

हाय कॉमन्सवेयर। आपके जवाब के लिए धन्यवाद। मुझे यह थोड़ा अजीब लगता है कि आप यह घोषणा नहीं कर सकते कि आप जीमेल में कौन सी फाइलें खोलना चाहते हैं? क्या यह सिर्फ जीमेल है कि मुझे इस मुद्दे का सामना करना पड़ेगा? – StuStirling

+0

@ डिस्को 2: मुद्दा यह है कि आप फ़ाइल एक्सटेंशन के आधार पर एसोसिएशन बनाने की कोशिश कर रहे हैं। एंड्रॉइड एमआईएमई प्रकार पर जोर देता है और फ़ाइल एक्सटेंशन के साथ बहुत कम करता है। सिद्धांत रूप में, आप किसी भी प्रकार के ऐप के साथ इस समस्या का सामना कर सकते हैं जो 'ContentProvider' के माध्यम से फ़ाइलों को सेवा प्रदान करता है। – CommonsWare

+0

ठीक है कि काफी उचित है, अगर मैं डेस्कटॉप क्लाइंट से फ़ाइल भेजना चाहता हूं, तो मेरा कोई एप्लीकेशन नहीं है क्योंकि मेरे पास एमआईएमई प्रकार पर कोई नियंत्रण नहीं है। आपकी मदद के लिए धन्यवाद कॉमन्सवेयर और आपकी पुस्तक भी बहुत उपयोगी है: 0 – StuStirling

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