2011-06-30 4 views
5

के साथ बग पर आने का सुंदर तरीका मुझे समस्या का सामना करना पड़ा: ACTION_IMAGE_CAPTURE इरादा का व्यवहार हार्डवेयर निर्माता पर निर्भर करता है।ACTION_IMAGE_CAPTURE

मुझे लगता है कि फोटो गैलरी में डाला कैमरे से तस्वीर प्राप्त करने के लिए onActivityResult में uri मिल

निम्नलिखित की तरह कुछ होना चाहिए और उसके बाद, सबसे अच्छा तरीका है:

switch (requestCode) { 
    case CAPTURE_IMAGE_REQUEST: { 
     if(resultCode == Activity.RESULT_OK) { 
       Uri uri = intent.getData();// content uri of photo in media gallery 
       //do something with this 
     } 
     break; 
    } 

लेकिन मैं देख रहा हूँ, यह है कि कई उपकरणों पर काम नहीं करता है; इसके अलावा, मैं कैमरा ऐप व्यवहार के कई अलग अलग स्थितियों में पाया गया:

  • कुछ उपकरणों को इस घटना के साथ bug है, इसलिए वहाँ fullsized लोगों के लिए बनाए कोई रास्ता नहीं है, और आप सार्वजनिक निर्देशिका में tmp फ़ाइल का उपयोग 512px विस्तृत तस्वीर प्राप्त कर सकते हैं केवल
  • कुछ डिवाइस (मेरा सहित) गैलरी में फोटो ले लिया, लेकिन उरी वापस नहीं आता है। (getData() शून्य लौटाता है, इरादा अतिरिक्त में केवल बूलियन कुंजी 'निर्दिष्ट-डेटा', मान = सत्य होता है) यदि मैं सार्वजनिक tempfile के माध्यम से फ़ोटो प्राप्त करने का प्रयास करता हूं तो फ़ोटो गैलरी और tempfile दोनों में डाली जाएगी।
  • कुछ उपकरणों गैलरी में फ़ोटो नहीं लिया डालूँ - और मैं इसे मैन्युअल
  • करना चाहिए मुझे पता नहीं है, लेकिन हो सकता है अन्य विभिन्न scenarious

तो, वहाँ इस तरह की समस्याओं के प्रबंधन में सर्वोत्तम प्रथाओं है उपकरणों और निर्माताओं की एक विस्तृत श्रृंखला को कवर करने के लिए?

इस मामले में मुझे कैमरे से फोटो लेने की आवश्यकता है, इसे गैलरी में डालें, फिर गैलरी में फोटो की यूरी प्राप्त करें।

उत्तर

0

इस का एक हिस्सा पहले से ही उत्तर दिया गया है:

  • hasImageCaptureBug()

  • के कार्यान्वयन की जाँच करें अशक्त समस्या के लिए, हो सकता है आप watch over the Gallery folder कर सकते हैं?

मुझे नहीं लगता कि आपको अन्य मामलों की जांच करनी चाहिए। Google और एंड्रॉइड OEM उन मुद्दों पर नजर रखता है, इसलिए उन्हें रिपोर्ट करें और उम्मीद है कि वे तय किए जाएंगे।

+2

और समस्याएं अभी भी तय नहीं हैं .. – Arseniy

+1

@muzhig अधिकांश कीड़े तय की जाती हैं, हालांकि वाहक OEM को अपग्रेड को रोल करने नहीं देते हैं। – Reno