Reputation: 13302
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
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