2

맞춤 사진 촬영 활동을 호출하는 조각이 있습니다.Android : 조각에서 활동으로의 의도가 작동하지 않습니다.

활동 호출에 추가로 전달되는 의도가 작동하지 않습니다. 내가 logcat을 인쇄하면 Fragment에 의도를 볼 수 있습니다. 그러나 활동은 그것을받지 못합니다.

조각 :

Intent intent = new Intent();   
intent.setClass(getActivity(), CameraActivity.class); 


Uri fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE); 

    intent.putExtra("outFile", fileUri);      

    Log.e(TAG, "" + 
      "------------------------------------------------------ " + 
      "fileUri intent => " + fileUri); 

startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE); 

활동 :

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_camera); 

Intent intent = getIntent(); 
outFile = intent.getStringExtra("outFile"); 

String test = getIntent().getExtras().getString("outFile"); 

Log.i("CameraActivity", "" + 
     "- " + 
     "test intent => " + test); 


Log.e("CameraActivity", "" + 
     "- " + 
     "intent.getStringExtra(outFile) => " + intent.getStringExtra("outFile")); 

Log.e("CameraActivity", "" + 
     "- " + 
     "outFile intent => " + outFile); 

로그 캣 : fragemnt에서

: 활동 로그에서

12-26 11:12:21.399: E/PostProductFragment(3563): - fileUri intent => file:///mnt/sdcard/Pictures/MyCameraApp/IMG_20141226_111221.jpg 

:

12-26 11:12:21.449: I/CameraActivity(3563): - test intent => null 
12-26 11:12:21.449: E/CameraActivity(3563): - intent.getStringExtra(outFile) => null 
12-26 11:12:21.449: E/CameraActivity(3563): - outFile intent => null 
+2

Uri 개체를 의도에 전달했음을 확인 했습니까? putExtra를 사용하여 fileUri.getPath()를 의도에 넣으십시오. –

+1

당신은 다음과 같이 변경해야합니다 : intent.putExtra ("outFile", fileUri.toString()); – hungkk

답변

1

파일 경로가 올바르게 작성되지 않았습니다.

private File createFolders() { 

    File baseDir; 

    if (android.os.Build.VERSION.SDK_INT < 8) { 
     baseDir = Environment.getExternalStorageDirectory(); 
    } else { 
     baseDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); 
    } 

    if (baseDir == null) return Environment.getExternalStorageDirectory(); 

    Log.d(LOG_TAG, "Pictures folder: " + baseDir.getAbsolutePath()); 
    File aviaryFolder = new File(baseDir, FOLDER_NAME); 

    if (aviaryFolder.exists()) return aviaryFolder; 
    if (aviaryFolder.mkdirs()) return aviaryFolder; 

    return Environment.getExternalStorageDirectory(); 
} 
관련 문제