2011-11-16 12 views
14

मेरे पास फ़ाइल खोलने और इसे मेरे एप्लिकेशन में आयात करने के लिए एंडेंट फ़िल्टर (ACTION_VIEW) के साथ एंड्रॉइड एप्लिकेशन है। मैं अपने आवेदन में जीमेल ऐप से फाइल अटैचमेंट डाउनलोड करना चाहता हूं। फ़ाइल प्रकार में से कुछ (यानी jpg, png, txt) सही ढंग से सहेजे गए हैं, लेकिन कुछ नहीं हैं (यानी दस्तावेज़, xls, ppt)। मेरा मानना ​​है कि मेरे पास मेरी गतिविधि के लिए सही इरादा फ़िल्टर है क्योंकि यह अन्य ऐप (यानी ड्रॉपबॉक्स) से काम करता है, लेकिन जीमेल ऐप नहीं। क्या इसका कोई समाधान है ?एंड्रॉइड पर जीमेल ऐप्स से अनुलग्नक डाउनलोड करने के लिए इरादा फ़िल्टर

उत्तर

7

मैं अपने इरादे में योजना डेटा फिल्टर को हटाने के द्वारा डाउनलोड और पूर्वावलोकन बटन Android पर पॉप अप जीमेल में बनाने के लिए सक्षम था (योजना लाइन हटा सकते हैं और इसे आजमाइए):

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

हालांकि, एंड्रॉइड प्रलेखन के अनुसार, "यदि कोई इरादा इरादे फ़िल्टर के लिए निर्दिष्ट नहीं है, तो अन्य सभी यूआरआई विशेषताओं को अनदेखा कर दिया जाता है।" योजना और यूआरआई विशेषताओं को हटाए जाने के साथ, इरादों को फ़िल्टर करने का एकमात्र अन्य तरीका माइम प्रकार का उपयोग कर रहा है, और हम सभी जानते हैं कि कस्टम फ़ाइल एक्सटेंशन में पंजीकृत माइम प्रकार नहीं हैं।

संदर्भ के लिए, यूआरआई के रूप में हैं:

  • योजना: // host: port/path
  • pathPrefix
  • pathPattern
एक योजना के बिना

तो, यह सब चला जाता है। उपरोक्त को खोजने के बाद, मैंने स्पष्ट कोशिश की - योजना के लिए "*" का उपयोग करें, और यहां तक ​​कि "। *" भी कोशिश की। उनमें से कोई भी काम नहीं किया। मुझे उम्मीद है कि कोई और मेरे परीक्षणों का निर्माण कर सकता है। लेकिन मेरा मानना ​​है कि इसे सही योजना का चयन करने के साथ करना है। दुर्भाग्यवश, मुझे केवल एक ही योजनाएं हैं जो http https सामग्री और फ़ाइल हैं, और उपरोक्त में से कोई भी जादू बुलेट नहीं है।

संपादित ::::::::

मैं इस कल को हल किया। कृपया मेरा समाधान देखें:

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

यह मंशा जीमेल को डाउनलोड/पूर्वावलोकन बटन प्रदर्शित करने का कारण बन जाएगा। वास्तव में, यह आपके ऐप को तब भी खोलने का कारण बनता है जब .ext फ़ाइलों को नियमित ईमेल क्लाइंट के अनुलग्नकों के रूप में भी भेजा जाता है।

+0

ऐप को जीमेल की सामग्री 'यूआरआई को पूर्वावलोकन बटन द्वारा प्रकाशित करने की क्या अनुमति है? मेरे ऐप में कोई अनुमति नहीं है और जब मैं इसे खोलने का प्रयास करता हूं तो मुझे कोई अनुमति अपवाद नहीं मिलता है। मुझे डाउनलोड बटन द्वारा प्रकाशित 'फ़ाइल' डेटा पढ़ने में कोई समस्या नहीं है। – user1139880

+0

उपयोगकर्ता - कोई विचार नहीं। मेरे पास मेरे ऐप में निम्नलिखित अनुमतियां हैं, लेकिन मैंने उन्हें विभिन्न उपयोगों के कारण जोड़ा, जीमेल पूर्वावलोकन/डाउनलोड के लिए नहीं। क्या आप यह भी सत्यापित कर सकते हैं कि मेरे द्वारा पोस्ट किया गया इरादा जीमेल डाउनलोड/पूर्वावलोकन प्रदर्शित करने का कारण बनता है? मुझे पता है कि मैंने इसे फ्रायओ, जिंजरब्रेड और आइसक्रीम सैंडविच में परीक्षण किया है और यह उन सभी में मेरे लिए काम करता है। –

+2

यह मेरी सूचना को किसी भी समय ट्रिगर करने के लिए फ़िल्टर करने का कारण बन रहा है जब मुझे मेरी अधिसूचना बार में एक नया जीमेल मिलता है और मैं इसे खोलने के लिए जाता हूं। क्या कोई और समस्या है? यह निश्चित रूप से यह फ़िल्टर है जिसके कारण यह है। – BriCo84

0

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

आदेश जीमेल से उद्देश्यों पर रजिस्टर करने के लिए हम सामग्री योजना का समर्थन करने की जरूरत है:

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

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

तथ्य के कारण, सभी माइम टाइपिंग के लिए पंजीकरण करना एक ओवरकिल है, मैंने इराद वस्तु (जावा पक्ष पर) की सामग्री को डीबग किया और पाया कि मेरे आवेदन टेक्स्ट/सादे में पर्याप्त है (इसलिए आपका होमवर्क उचित माइम टाइप ढूंढना है आपका आवेदन)। मेरा अंतिम इरादा-फ़िल्टर इस तरह दिखता है:

<intent-filter> 
    <action android:name="android.intent.action.VIEW" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:scheme="content" android:mimeType="text/plain" android:host="*" /> 
</intent-filter> 
+0

** एंड्रॉइड: योजना = "फ़ाइल" ** के बारे में क्या है। क्या इसकी आवश्यकता नहीं है? –

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