title: Null URI on API level >=23 camera intent
body: <p>This might be a possible duplicate but i can't seem to pinpoint the exact solution.
  Camera works fine and returns the image uri on devices below api 23.
  However app crushes right after capturing image on devices apove api 23 with log error</p>
  
  <pre><code>java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=2, result=-1, data=Intent { act=inline-data (has extras) }} to activity {ana.foodi/ana.foodi.MainActivity}: java.lang.NullPointerException: uri
                                                           at android.app.ActivityThread.deliverResults(ActivityThread.java:3940)
                                                           at android.app.ActivityThread.handleSendResult(ActivityThread.java:3983)
                                                           at android.app.ActivityThread.-wrap16(ActivityThread.java)
                                                           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1548)
                                                           at android.os.Handler.dispatchMessage(Handler.java:111)
                                                           at android.os.Looper.loop(Looper.java:207)
                                                           at android.app.ActivityThread.main(ActivityThread.java:5765)
                                                           at java.lang.reflect.Method.invoke(Native Method)
                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
                                                        Caused by: java.lang.NullPointerException: uri
                                                           at com.android.internal.util.Preconditions.checkNotNull(Preconditions.java:60)
                                                           at android.content.ContentResolver.query(ContentResolver.java:481)
                                                           at android.content.ContentResolver.query(ContentResolver.java:441)
                                                           at ana.foodi.MainActivity.onActivityResult(MainActivity.java:672)
  </code></pre>
  
  <p>After checking with breakpoints,realised Uri (selectedImage) is null below:</p>
  
  <pre><code> @Override
  public void onActivityResult(int requestCode, int resultCode, Intent data) {
      super.onActivityResult(requestCode, resultCode, data);
      final String filePath;
      if(resultCode == Activity.RESULT_OK &amp;&amp; REQUEST_POST_PHOTO==999){
  
  
          if(requestCode == 2 ) {
              requestRuntimePermission();
              Uri selectedImage = data.getData();
              String[] filePaths = {MediaStore.Images.Media.DATA};
              Cursor c = this.getContentResolver().query(selectedImage, filePaths, null, null, null);
              c.moveToFirst();
              int columnIndex = c.getColumnIndex(filePaths[0]);
              filePath = c.getString(columnIndex);
              c.close();
  </code></pre>
  
  <p>I've tried requesting runtime permission with this </p>
  
  <pre><code>public void requestRuntimePermission() {
      if (Build.VERSION.SDK_INT &gt;= 23) {
          if (ContextCompat.checkSelfPermission(context,android.Manifest.permission.WRITE_EXTERNAL_STORAGE)
                  != PackageManager.PERMISSION_GRANTED) {
              ActivityCompat.requestPermissions(this,
                      new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
          }
      }
  }
  </code></pre>
  
  <p>but error persist.</p>
  
  <p>startActivityForResult call</p>
  
  <pre><code>REQUEST_POST_PHOTO=999;
                  Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                  startActivityForResult(cameraIntent, REQUEST_CODE_POST);
  </code></pre>