Вам нужно добавить разделитель пути в ваш файл? т.е.
File file = new File(Environment.getExternalStorageDirectory() +
File.separator + "image.png");
Вы должны добавить намного больше журналов и тестов в свой код, чтобы проверить, ведет ли он себя так, как вы ожидаете, например,
Запишите сведения о файле, который вы пытаетесь создать, чтобы убедиться, что он правильный.
После того, как вы создали файл, проверьте, существует ли он, например, if (!file.exists())
Функция Bitmap.compress возвращает логическое значение, поэтому вы должны проверить возвращаемое значение и записать его в журнал, чтобы убедиться в его успешности.
Еще одна мысль: может быть, вам нужно вызвать ostream.flush () ( API документы здесь ), чтобы гарантировать, что буферизованные данные записываются в файл?
Я предполагаю, что вы пишете этот код для использования в вашем приложении. Вы, вероятно, уже знаете это, но DDMS предоставляет способ делать скриншоты на тот случай, если вы захотите сделать это самостоятельно. Просто выберите устройство, чтобы включить опцию меню «Снимок экрана».