2012-09-01 5 views
2

startActivityForResult를 호출하면 ActivityNotFoundException이 발생합니다. onActivityResult 내에서 startActivityForResult를 호출하는 것이 가능하다는 것을 알고 싶었습니다. 예 다음 아마도 내 코드에 어떤 문제가 될 수있는 경우 : ("true"로 "작물")onActivityResult 내 startActivityForResult 호출

OnPreferenceClickListener selectListener = new OnPreferenceClickListener() { 

     public boolean onPreferenceClick(Preference preference) { 
      Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); 
      photoPickerIntent.setType("image/*"); 
      photoPickerIntent.putExtra("crop","true"); 
      startActivityForResult(photoPickerIntent, 123); 
      return false; 
     } 

    }; 

    protected void onActivityResult(int requestCode, int resultCode, Intent resultIntent) { 
     super.onActivityResult(requestCode, resultCode, resultIntent); 

     if(requestCode == 123){ 
      if(resultCode == RESULT_OK){ 
       Uri selectedImage = resultIntent.getData(); // uri from user selection. 
       File tempFile; // temporary File 
       Uri tempUri; // temporary Uri 

       try { 
        // initializing File 
        tempFile = File.createTempFile("crop", ".png", Environment.getExternalStorageDirectory()); 
       } catch (IOException e1) { 
        tempFile = null; 
       } 

       if(tempFile != null){ 
        // initializing Uri 
       tempUri = Uri.fromFile(tempFile); 
       }else{ 
        tempUri = selectedImage; 
       } 

       Display display = getWindowManager().getDefaultDisplay(); 
       int width = display.getWidth(); 
       int height = display.getHeight(); 

       // creating new crop intent 
       final Intent cropIntent = new Intent("com.android.camera.action.CROP"); 
       cropIntent.setData(selectedImage); // original image Uri 
       cropIntent.putExtra("outputX", width); 
       cropIntent.putExtra("outputY", height); 
       cropIntent.putExtra("aspectX", width); 
       cropIntent.putExtra("aspectY", height); 
       cropIntent.putExtra("scale", true); 
       cropIntent.putExtra("noFaceDetection", true); 
       cropIntent.putExtra("output", tempUri); // cropped image Uri 
       cropIntent.putExtra("outputFormat", "png"); 
       startActivityForResult(cropIntent, 456); 
      } 

     if(requestCode == 456){ 
      if(resultCode == RESULT_OK){ 
       System.out.println("inside request code 456"); 
      } 
     } 

답변

0

이 photoPickerIntent.putExtra을 제거하여이 오류를 해결; 여기

코드입니다

관련 문제