title: getExternalFilesDir() returns null
body: <p>One of my app's users has reported an error in my app, where <code>Context.getExternalFilesDir(null)</code> returns null.</p>
  
  <p>I have added <code>WRITE_EXTERNAL_STORAGE</code> permission as following.</p>
  
  <pre><code>&lt;uses-permission
       android:name="android.permission.WRITE_EXTERNAL_STORAGE"
       android:maxSdkVersion="18" /&gt;
  </code></pre>
  
  <p>I have used <code>android:maxSdkVersion="18"</code> because android <a href="http://developer.android.com/guide/topics/manifest/uses-permission-element.html" rel="nofollow">documentation</a> says that <code>WRITE_EXTERNAL_STORAGE</code> permission is not necessary to write to directory returned by <code>Context.getExternalFilesDir(null)</code>, starting from Android 4.4 (sdk 19).</p>
  
  <p>But, if I remove <code>android:maxSdkVersion="18"</code> from the permission, <code>Context.getExternalFilesDir(null)</code> returns a non null value.</p>
  
  <p>The device this happens is Oppo Find 7 with Android 4.4.2 (<a href="https://en.wikipedia.org/wiki/Android_version_history#Android_4.4.E2.80.934.4.4_KitKat_.28API_level_19.29" rel="nofollow">SDK version 19</a>).</p>
  
  <p>Can someone explain why this happens? What should I do to fix this? Removing <code>android:maxSdkVersion="18"</code> fixes the problem, but as per the documentation, the permission is unnecessary in later android versions.</p>