title: Environment.getExternalStoragePublicDirectory gives internal storage
body: <p>I'm saving a picture like so:</p>
  
  <pre><code>File dcimDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
  File picsDir = new File(dcimDir, "MyPics");
  picsDir.mkdirs(); //make if not exist
  File newFile = new File(picsDir, "image.png"));
  OutputStream os;
  try {
      os = new FileOutputStream(newFile);
  
      target.compress(CompressFormat.PNG, 100, os);
  
      os.flush();
      os.close();
      b.recycle();
  } catch (FileNotFoundException e) {
      e.printStackTrace();
  } catch (IOException e) {
      e.printStackTrace();
  }
  </code></pre>
  
  <p>However, when I look for the image through windows it is in the internal memory, the gallery confirms this:</p>
  
  <p><img src="https://i.stack.imgur.com/nHIW3.png" alt="On PC"></p>
  
  <p><img src="https://i.stack.imgur.com/6q9ly.png" alt="Gallery details"></p>
  
  <p>This last one is confusing, it says internal memory, but then also has <code>sdcard0</code> in file path.</p>
  
  <p>So when does external not mean external? Is it a device set up thing, or an I miss-using/miss-understanding <code>getExternalStoragePublicDirectory</code>?</p>