Thiago
Thiago

Reputation: 13302

Android: intent from Fragment to Activity not working

I am have a fragment which calls a custom take picture activity.

The intent extra passing to the activity call does not work. If I print the logcat I can see the intent in the Fragment. But the Activity does not receive it.

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

Activity:

@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);

LogCat:

from fragemnt:

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

from activity log:

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

Upvotes: 2

Views: 771

Answers (1)

Thiago
Thiago

Reputation: 13302

I didn't create the file path correctly.

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

Upvotes: 1

Related Questions