2012-09-18 12 views
5

मैं एक साधारण एंड्रॉइड ऐप खड़ा करने की कोशिश कर रहा हूं जो इरादे के माध्यम से कैमरे का उपयोग करता है। यह कोड Android documentation here से बहुत अधिक है, लेकिन यह मेरे लिए काम नहीं कर रहा है।एंड्रॉइड कैमरा इरादा RESULT_OK मामले में वापस नहीं आता

कैमरा एप शुरू करने के बाद कॉल के बाद उम्मीद की जाती है एक्टिविटीफॉर रिसेट(), लेकिन यह एक तस्वीर (?!) लेने के बाद कभी वापस नहीं आती है। विशेष रूप से, यह एक फोटो लेने के बाद वापस नहीं आता है और स्वीकार्य आइकन चुनता है (गैलेक्सी नेक्सस पर चेक मार्क)। लेकिन जब मैं रद्द आइकन (उसी फोन पर 'एक्स' चुनता हूं तो यह वापस आता है)।

कोड यह (ध्यान दें, मैं एक टुकड़ा, एक गतिविधि से काम कर रहा हूँ):

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 

    View view = inflater.inflate(R.layout.my_layout, container, false); 

    final Button btnCamera = (Button) view.findViewById(R.id.cameraid); 

    View.OnClickListener handler = new View.OnClickListener() { 
     public void onClick(View v) { 
      if (v == btnCamera) { 
       Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 

       // create a file to save the image 
       File imagesFolder = new File(Environment.getExternalStorageDirectory(), "MyImages"); 
       imagesFolder.mkdirs(); 
       File image = new File(imagesFolder, "image_001.jpg"); 
       Uri uriSavedImage = Uri.fromFile(image); 

       // start the image capture Intent 
       cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage); 
       startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE); 
      } 
     } 
    } 
    btnCamera.setOnClickListener(handler); 
} 

और

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) { 
     if (resultCode == Activity.RESULT_OK) { 
      // Image captured and saved to fileUri specified in the Intent 
      Toast.makeText(getActivity(), "Image saved to:\n" + 
        data.getData(), Toast.LENGTH_LONG).show(); 
     } 
     else if (resultCode == Activity.RESULT_CANCELED) { 
      // User cancelled the image capture 
     } else { 
      // Image capture failed, advise user 
     } 
    } 

क्या मैं इस काम करने के लिए बदलने की जरूरत है? धन्यवाद।

उत्तर

12

ओह, ऐसा काम किया जब मैं प्रकट लाइनों कहा:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.CAMERA"/> 

मैं गलती से सोचा होगा कि आपके ऐप एक बाहरी कैमरा एप्लिकेशन पर निर्भर करता है इन पंक्तियों आवश्यक नहीं थे। लेकिन मैं इसके बारे में गलत था! धन्यवाद।

+0

धन्यवाद डायलन, - करेंगे। – gcl1

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