2013-05-16 31 views
5

Kamerayı kameranın uygulamasında başlatmak niyetindeyim ama niyetim ateşlendiğinde onActivityResult kovuluyor ve henüz bir fotoğraf bile çekmedim. Ben bir resim çekmek seçin ve burada fotoğraf makinesionActivityResult, kamera niyetinde gönderildikten hemen sonra çağrılıyor

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(); 
    } 

başlatmak nasıl geri onActivityResult tüm

de çağrılmadığı Etkinliğime dönmek yaptığınızda

Neden sadece onActivityResult olduğunu

kamera niyetini başlattıktan sonra aranıyor?

+0

o: o zaman "(kamera) niyet onActivityResult kovuluyor kovuluyor en kısa sürede" ama "Bir fotoğraf çekerken ... onActivityResult hiç çağrılmadı". Hangisi o? – Neoh

+0

@Neoh her ikisi de, niyet gönderildiğinde çağrılır ama aslında fotoğrafımı çektiğimde, örneğin – tyczj

+0

çağrılmıyorsa, onActivityResult() çağrılırsa, resultCode'un değeri nedir? parametre? –

cevap

4

sorun benim manifest'te ben etkinlik singleInstance ayarlı vardı ve görünüşe startActivityForResult sevmez demiştin

+2

Evet, aktiviteniz startMode =" singleInstance "' ise, kamera aktivitesini başlatmak, kamera etkinliği başka bir göreve başlayacaktır. Aynı görevde olmayan 2 etkinlik arasında 'startActivityForResult()' kullanarak iletişim kuramazsınız. Bu aslında benim düşüncemin nereye gittiğini ve neden sonuç koduyla ilgili soruyu sorduğumdu. 0 sonuç kodu, 'startActivityForResult()' çağrınızın bir sebepten dolayı derhal iptal edildiğini belirten "RESULT_CANCELED". –

İlgili konular