8

देता है मैं एंड्रॉइड में एक छवि संपादक लिख रहा हूं। अभी तक यह एक ही गतिविधि है। इस गतिविधि से, मैं मेनू विकल्प का उपयोग कर एक छवि लोड कर सकता हूं जो गैलरी गतिविधि को कॉल करता है, और एक्टिविटी रिसेट में मैं प्राप्त कैमेरा को पेंट करने के लिए प्राप्त छवि का इलाज करता हूं ताकि मैं इसे संपादित कर सकूं। यह ठीक काम कर रहा है।इरादा फ़िल्टर: intent.getData() शून्य

अब मैं क्या करना चाहता हूं यह गतिविधि कहीं और से कॉल करने योग्य है, इसलिए गतिविधि के अंदर से एक छवि लेने की बजाय, मैं गैलरी खोल सकता हूं, एक फोटो ले सकता हूं और इसे अपने ऐप पर भेज सकता हूं । लेकिन मैं यह नहीं समझ सकता कि कैसे।

मेरी प्रकट पर, मैं <activity> टैग के अंदर निम्नलिखित डाल दिया है:

<intent-filter> 
    <action android:name="android.intent.action.SEND" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:mimeType="image/*" /> 
</intent-filter> 

फिर, जैसा कि http://developer.android.com/training/basics/intents/filters.html में उल्लेख किया है मेरी गतिविधि में, मैं OnCreate() के अंदर निम्नलिखित डाल दिया है:

... 
//after initializing my view and stuff 

Intent intent =getIntent(); 
Uri image = intent.getData(); 

//code to do something with my uri 
... 

जब मैं अपने फोन में ऐप इंस्टॉल करता हूं और फिर गैलरी खोलता हूं, तो मैं एक छवि चुन सकता हूं और "भेजें" मेनू का उपयोग कर सकता हूं और मेरा ऐप ऐप सूची में दिखाई देगा, लेकिन जब मैं इसे चुनता हूं तो मेरा ऐप खुलता है लेकिन छवि को अनदेखा करता है। यह पता चला है कि यूरी मैं intent.getData() से प्राप्त कर रहा हूं, शून्य है, और मैं यह नहीं समझ सकता कि क्यों।

क्या मैं कुछ गलत कर रहा हूं? क्या मैं कुछ भूल रहा हूँ? यदि आपको पता होना चाहिए, तो मैं इसके साथ प्रदान की गई CoolIris गैलरी का उपयोग कर एंड्रॉइड 2.3 स्टॉक पर हूं।

उत्तर

22

उड़ी जो आप चाहते हैं वह बंडल में है। मैं नीचे दिए गए कोड की कोशिश की है और इस तरह के content://media/external/images/media/1750

Intent intent = getIntent(); 
Bundle bundle = intent.getExtras(); 
Uri uri = (Uri)bundle.get(Intent.EXTRA_STREAM); 

अधिक जानकारी के रूप में छवि के उरी मिल आप ACTION_SEND

+0

देख सकते हैं यह मैं वास्तव में क्या जरूरत है सकते हैं। धन्यवाद! तो, क्या Google का दस्तावेज गलत है या क्या मैं कुछ गलत पढ़ रहा था? – ziritrion

+0

ACTION_SEND दस्तावेज़ देखें, यह 'इनपुट' को समझाता है जिसे आपको ध्यान देना चाहिए। – dreamtale

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