title: android.os.FileUriExposedException: file.jpg exposed beyond app through ClipData.Item.getUri()
body: <p>I try to do a button that open the camera and take picture. my code is here</p>
  
  <pre><code>//for imports check on bottom of this code block
  
  public class HomeProfileActivity extends AppCompatActivity {
  //Button camera
  public static final String TAG = HomeProfileActivity.class.getSimpleName();
  public static final int REQUEST_TAKE_PHOTO = 0;
  public static final int REQUEST_TAKE_VIDEO = 1;
  public static final int REQUEST_PICK_PHOTO = 2;
  public static final int REQUEST_PICK_VIDEO = 3;
  public static final int MEDIA_TYPE_IMAGE = 4;
  public static final int MEDIA_TYPE_VIDEO = 5;
  
  private Uri mMediaUri;
  private ImageView photobutton;
  private Button buttonUploadImage, buttonTakeImage;
  
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_home_profile);
      ButterKnife.bind(this);
  }
  
  @OnClick(R.id.buttonTakeImage)
  void takePhoto() {
      mMediaUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE);
      if (mMediaUri == null) {
          Toast.makeText(this,
                  "There was a problem accessing your device's external storage.",
                  Toast.LENGTH_LONG).show();
      }
      else {
          Intent takePhotoIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
          takePhotoIntent.putExtra(MediaStore.EXTRA_OUTPUT, mMediaUri);
          startActivityForResult(takePhotoIntent, REQUEST_TAKE_PHOTO);
      }
  }
  
  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
      super.onActivityResult(requestCode, resultCode, data);
  
      if (resultCode == RESULT_OK){
          if (requestCode == REQUEST_TAKE_PHOTO) {
              Intent intent = new Intent(this, ViewImageActivity.class);
              intent.setData(mMediaUri);
              startActivity(intent);
          }
      }
      else if (resultCode != RESULT_CANCELED){
          Toast.makeText(this, "Sorry, there was an error", Toast.LENGTH_SHORT).show();
      }
  }
  
  private Uri getOutputMediaFileUri(int mediaType) {
      // check for external storage
      if (isExternalStorageAvailable()) {
          // get the URI
  
          // 1. Get the external storage directory
          File mediaStorageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
  
          // 2. Create a unique file name
          String fileName = "";
          String fileType = "";
          String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
  
          if (mediaType == MEDIA_TYPE_IMAGE) {
              fileName = "IMG_" + timeStamp;
              fileType = ".jpg";
          } else if (mediaType == MEDIA_TYPE_VIDEO) {
              fileName = "VID_" + timeStamp;
              fileType = ".mp4";
          } else {
              return null;
          }
          // 3. Create the file
          File mediaFile;
          try {
              mediaFile = File.createTempFile(fileName, fileType, mediaStorageDir);
              Log.i(TAG, "File: " + Uri.fromFile(mediaFile));
  
              // 4. Return the file's URI
              return Uri.fromFile(mediaFile);
          }
          catch (IOException e) {
                  Log.e(TAG, "Error creating file: " +
                          mediaStorageDir.getAbsolutePath() + fileName + fileType);
              }
          }
  
          // something went wrong
          return null;
      }
  
  private boolean isExternalStorageAvailable(){
      String state = Environment.getExternalStorageState();
      if (Environment.MEDIA_MOUNTED.equals(state)){
          return true;
      }
      else {
          return false;
      }
  }
  
  import android.content.Intent;
  import android.content.SharedPreferences;
  import android.net.Uri;
  import android.os.Bundle;
  import android.os.Environment;
  import android.provider.MediaStore;
  import android.support.annotation.NonNull;
  import android.support.design.widget.BottomNavigationView;
  import android.support.v7.app.AppCompatActivity;
  import android.util.Log;
  import android.view.MenuItem;
  import android.view.View;
  import android.widget.Button;
  import android.widget.EditText;
  import android.widget.ImageView;
  import android.widget.TextView;
  import android.widget.Toast;
  
  import java.io.File;
  import java.io.IOException;
  import java.text.SimpleDateFormat;
  import java.util.Date;
  
  import butterknife.ButterKnife;
  import butterknife.OnClick;
  </code></pre>
  
  <p>I have also a problem with <code>startActivityForResult</code> in the method onclick
  and the import <code>java.text.SimpleDateFormat;</code> also jump in the exception runtime
  i am working with buildtoolsversion sdk 25</p>