title: Android file canRead() is always false on SD card
body: <p>I am trying to read a file from the SD card, but finding that I don't have read permissions.
  I first get the public storage directory and list the files like so:</p>
  
  <pre><code>    File dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
      File[] files = dir.listFiles();
  </code></pre>
  
  <p>Then I select one of the files and test to see if it is readable:</p>
  
  <pre><code>    Log.d(TAG, files[0].canRead());
  </code></pre>
  
  <p>This always displays false, and I'm not sure why. I am able to write to the directory (in fact it's the file that I've written that I want to read), and I've tried variations of </p>
  
  <pre><code>    files[0].setReadable(true);
  </code></pre>
  
  <p>and</p>
  
  <pre><code>    dir.setReadable(true);
  </code></pre>
  
  <p>with no luck. I also have </p>
  
  <pre><code>    &lt;uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&gt;
  </code></pre>
  
  <p>included in my Manifest file and made sure my device wasn't connected to anything (as suggested <a href="https://stackoverflow.com/questions/3214861/cant-read-write-to-sdcard-in-android">here</a>), but that wasn't it. </p>
  
  <p>I am able to pull the file from the device and read it in a text editor. Any ideas as to what this could be?</p>
  
  <p>Stats: Using API 12 on Samsung Galaxy tablet.</p>