title: _data column not available at FileProvider uri
body: <p>I'm using the FileProvider pattern for creating content:// uri to files, with the </p>
  
  <pre><code>FileProvider.getUriForFile(this, "com.myapp.provider", file) 
  </code></pre>
  
  <p>function. I have the manifest, provider_paths and everything set the standard way,  It creates an uri like <code>content://com.myapp.provider/external_files/music/mysong.mp3</code>.</p>
  
  <p>My issue is that if I try getting the real file path in another app, it doesn't work as the <code>_data</code> column doesn't exist (to be specific the error in logs is <code>E/CursorWindow: Failed to read row 0, column -1 from a CursorWindow which has 1 rows, 0 columns.</code>). For fetching the real path I'm using the also pretty much standard function</p>
  
  <pre><code>final String column = MediaStore.Files.FileColumns.DATA;
  final String[] projection = { column  };
  try {
      cursor = context.getContentResolver().query(uri, projection, null, null, null);
      if (cursor != null &amp;&amp; cursor.moveToFirst()) {
          final int column_index = cursor.getColumnIndexOrThrow(column);
          return cursor.getString(column_index);
      }
  } finally {
      if (cursor != null)
          cursor.close();
  }
  </code></pre>
  
  <p>If I use a different app for sharing the same file it generates an uri like <code>content://com.otherapp.provider/external_files/music/mysong.mp3</code>, from which I can already retrieve the real file path. Any ideas what do I have to do to make sure that my app properly inserts the given uri to ContentResolver? Manual <code>contentResolver.insert(...)</code> functions are not allowed. I've tried different versions of provider_paths.xml and granting all possible read/write permissions to the given uri, but I could never retrieve the real path. </p>
  
  <p>The uri itself generated by me works fine as I can read the file or play the song, my issue is just that I cannot retrieve the real file path that I need. </p>
  
  <p>Thanks</p>