You are using ACTION_IMAGE_CAPTURE. ACTION_IMAGE_CAPTURE is not supposed to return a Uri via onActivityResult(). Instead, either:
You provide EXTRA_OUTPUT on the ACTION_IMAGE_CAPTURE Intent, in which case the image is supposed to be saved to that location (see this sample app), or
You do not provide EXTRA_OUTPUT on the ACTION_IMAGE_CAPTURE Intent, in which case you get a thumbnail Bitmap back via the "data" extra on the Intent delivered to onActivityResult()
This is covered in the documentation.
Some buggy camera apps will return a Uri. Do not count on this behavior, as well-written camera apps will not.