2014-02-15 8 views
0

카메라에서 돌아 왔을 때 응용 프로그램이 손상됩니다. 응용 프로그램은 bellow 19 안드로이드 버전에 완벽하게 작동하지만 OS 버전 19에서는 작동하지 않습니다.이 응용 프로그램을 실행하려면 Google Nexus 7을 사용하고 있습니다.카메라에서 돌아 왔을 때 응용 프로그램이 손상됩니다.

protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { 
    super.onActivityResult(requestCode, resultCode, imageReturnedIntent); 
    if (requestCode == IMAGE_CAPTURE) { 

     Uri fileUri = null; 

     if(imageReturnedIntent == null || resultCode != RESULT_OK){ 
      Log.d("ResultNotOk", "resultCode"+resultCode); 
      File imageStorageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).toString()); 
      for(File f : imageStorageDir.listFiles()){ 
       if(Uri.fromFile(f).equals(this.fileUri)){ 
        fileUri = this.fileUri; 

        Log.d("fileUriNew", "fileUriNew:-" +fileUri); 
        break; 
       } 
      } 

     }else if (resultCode == RESULT_OK) { 
      Log.d("ResultOk!!", "resultCode"+resultCode); 
      fileUri = imageReturnedIntent.getData(); 
      } 
      //fileUri = imageReturnedIntent.getData(); 
      Log.d("Uri", "FileUri"+fileUri); 

      Intent cameraIntent = new Intent(this, EditImage.class); 
      cameraIntent.setType("/*image"); 
      cameraIntent.setData(imageReturnedIntent.getData()); 
      cameraIntent.putExtra("EditMode", true); 
      cameraIntent.putExtra("Uri", fileUri); 
      Log.d("imageReturnedIntent", "imageReturnedIntent"+ imageReturnedIntent); 


      //if edit mode is 1, intent is from camera 

      cameraIntent.putExtra("EditMode", false); 
      startActivity(cameraIntent); 
     } 
+0

오류 로그 ... – Jeba

+0

그리고 관련 코드 등을 추가하십시오 :

cameraButton.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(cameraIntent, IMAGE_CAPTURE); } }); 

그리고 내 onActivityResult를 (주어 울부 짖는 소리) :

난 당신이 내 코드를 보낸다 잘 도움이 될 수도 있습니다 – Niko

+0

도와주세요. 나는 2 일 이후 여기에서 붙어있다 – DKHirani

답변

2
cameraButton.setOnClickListener(new OnClickListener() { 
     public void onClick(View arg0) { 

String fileName = "Camera_Example.jpg"; 
      ContentValues values = new ContentValues(); 
      values.put(MediaStore.Images.Media.TITLE, fileName); 
      values.put(MediaStore.Images.Media.DESCRIPTION, 
        "Image capture by camera"); 

      imageUri = getContentResolver().insert(
        MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); 
      Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 

       startActivityForResult(cameraIntent, IMAGE_CAPTURE); 
     } 
    }); 


protected void onSaveInstanceState(Bundle outState) { 
      super.onSaveInstanceState(outState); 
      if (imageUri != null) { 
       outState.putString("cameraImageUri", imageUri.toString()); 
      } 
     } 

     @Override 
     protected void onRestoreInstanceState(Bundle savedInstanceState) { 
      super.onRestoreInstanceState(savedInstanceState); 
      if (savedInstanceState.containsKey("cameraImageUri")) { 
       imageUri = Uri 
         .parse(savedInstanceState.getString("cameraImageUri")); 
      } 
     } 
+0

이 작품은 plz 알려주세요 – user2771059

+0

그 works.thanks하지만 반환 uri 여부를 캡처 한 이미지를 클릭 (완료 기호를 클릭) 또는 카메라에 의해 제공되는 취소 기호를 클릭하여 돌아 왔는지 null. – DKHirani

+0

내 답변을 업데이트하십시오. – user2771059