2011-07-20 11 views
5

मैंने एक ऐसा कार्यक्रम बनाया जिसका मुख्य कार्य फ़ोटो लेने और उन्हें दिए गए पथ में स्टोर करने के लिए एपीआई का उपयोग करता है।आम तौर पर विभिन्न एंड्रॉइड फोन पर फोटो लेना इतना मुश्किल क्यों है?

लेकिन जब मैं Google के मूल रोम के साथ एमुलेटर या फोन पर परीक्षण करता हूं तो उस चीज की तुलना में चीजें अलग-अलग फोन पर नहीं आतीं।

सैद्धांतिक रूप से। अगर मैंने इरादे का मार्ग दिया है, तो फोटो फोन की डिफ़ॉल्ट गैलरी में दिखाई नहीं देनी चाहिए, लेकिन मोटो डिफाई पर फोटो मेरे पथ और डिफ़ॉल्ट छवि निर्देशिका दोनों में संग्रहीत किए गए थे। और सैमसंग पर, कैमरा ऐप से वापस आने पर मेरा ऐप चुपचाप दुर्घटनाग्रस्त हो जाता है। और केवल कुछ फोनों पर मैं कैमरा गतिविधि में मेनू बटन दबाकर मेनू ला सकता हूं। और उनमें से कुछ कैमरे गतिविधि के सेटिंग मेनू में सेट आकार के रूप में फोटो बचाता है।

मुझे लगता है कि ऐसा इसलिए है क्योंकि निर्माताओं ने अपने फोन पर रोम को अनुकूलित किया ताकि कैमरा गतिविधि अलग-अलग कार्य करे।

कोई भी इस स्थिति से बचने के बारे में जानता है? या "android.media.action.IMAGE_CAPTURE" के इरादे से फोटो लेने का कोई और तरीका नहीं है?

निम्नलिखित कोड है कि मैं फोटो कैसे लेता हूं।

Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); 
    intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(getpath()+"_.jpg"))); 
    intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1); 
    startActivityForResult(intent, 0); 

उत्तर

1

तरीका है कि @balban शाह काम की पेशकश की एक ही स्थापित करने रखना सभी एक ही है जब मैं करने की कोशिश की।

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

0

इस कोड का उपयोग करने के लिए कोशिश अन्य तस्वीर पर कब्जा के लिए

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(origImageFile)); 
startActivityForResult(cameraIntent, 0); 
संबंधित मुद्दे