2013-05-16 8 views
5

मैं अपने ऐप में कैमरा लॉन्च करने के लिए कैमरे के इरादे का उपयोग कर रहा हूं लेकिन जैसे ही इरादा निकाल दिया जाता है onActivityResult निकाल दिया जाता है और मैंने अभी तक एक तस्वीर नहीं ली है।पर एक्टिविटी रिजल्ट जैसे ही कैमरा इरादा भेजा जाता है

जब मैं एक तस्वीर ले लो, इसे चुनें और वापस मेरी गतिविधि onActivityResult सभी

पर बुलाया नहीं प्राप्त करता है पर लौटने यहाँ कैसे मैं कैमरा

PackageManager pm = getPackageManager(); 
    if (pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) { 
     Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 

     File tempDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),"Mobile Map"); 
     if (!tempDir.exists()) { 
      if (!tempDir.mkdir()) { 
       Toast.makeText(this, 
         "Please check SD card! Image shot is impossible!", 
         Toast.LENGTH_SHORT).show(); 
      } 
     } 

     String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss",Locale.US).format(new Date()); 
     File mediaFile = new File(tempDir.getPath() + File.separator+ "IMG_" + timeStamp + ".jpg"); 

     photoUri = Uri.fromFile(mediaFile); 
     camera.putExtra(MediaStore.EXTRA_OUTPUT, photoUri); 
     startActivityForResult(camera, CAMERA_REQUEST); 
    } else { 
     Toast.makeText(this,"This device does not have a rear facing camera",Toast.LENGTH_SHORT).show(); 
    } 

लांच है क्यों केवल onActivityResult है कैमरे के इरादे के लॉन्च होने के बाद बुलाया जा रहा है?

+0

आप ने कहा, "जैसे ही (कैमरा) आशय निकाल दिया जाता onActivityResult निकाल दिया जाता" है, लेकिन फिर "जब मैं एक तस्वीर लेता हूं ... AtctivityResult बिल्कुल नहीं बुलाया जाता है"। इनमें से कौनसा? – Neoh

+0

@Neoh दोनों, जब इरादा भेजा जाता है तो इसे कॉल किया जाता है, लेकिन जब मैं वास्तव में इसे अपनी तस्वीर लेने के लिए कहूंगा, तो इसे – tyczj

+0

नहीं कहा जाता है जब 'atActivityResult()' कहा जाता है, परिणाम कोड का मूल्य क्या होता है पैरामीटर? –

उत्तर

4

समस्या मेरी प्रकट में मैं गतिविधि singleInstance करने के लिए सेट किया था कि था और जाहिरा तौर पर startActivityForResult की तरह नहीं है कि

+2

हां, यदि आपकी गतिविधि में 'launchMode =" एकलInstance "है जिसका अर्थ है कि जब आप कैमरा गतिविधि लॉन्च करें, कैमरा गतिविधि दूसरे कार्य में लॉन्च की जाएगी। आप 'startActivityForResult()' का उपयोग करके दो गतिविधियों के बीच संवाद नहीं कर सकते जो एक ही कार्य में नहीं हैं। वह वास्तव में था जहां मेरी सोच की रेखा चल रही थी और मैंने परिणाम कोड के बारे में सवाल क्यों पूछा। 0 का परिणाम कोड 'RESULT_CANCELED' है जो इंगित करता है कि 'startActivityForResult()' पर आपका कॉल किसी कारण से तुरंत रद्द कर दिया गया था। –

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