2014-02-15 49 views
0

當我從相機回來時,我的應用程序崩潰。應用程序完美的波紋管19 Android版本,但不適用於操作系統版本19.我正在使用谷歌Nexus 7來運行這個應用程序。從相機回來時應用程序崩潰

我發送你我的代碼:

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


      Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 

       startActivityForResult(cameraIntent, IMAGE_CAPTURE); 
     } 
    }); 

我的onActivityResult(給出波紋管):

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

和相關的代碼以及可能會有所幫助 – 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

它的作品。謝謝但它的返回uri null是否我捕獲圖像(點擊完成的標誌)或通過單擊相機提供的取消標誌點擊返回。 – DKHirani

+0

我更新我的答案檢查它 – user2771059