2013-11-12 1 views
0

Я пытаюсь сохранить растровое изображение в файл. Код работает нормально на одном устройстве (Nexus S), но я получаю FileNotFoundException на Samsung S 3. Оба они работают под управлением Android версии 4.1.2. Вот код, который я использую:Сохранить растровое изображение в файле имеет непоследовательные результаты

   File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "MyApp"); 
       String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); 
       File file = new File(mediaStorageDir.getPath() + File.separator + "IMG_" + timeStamp + ".jpg"); 
Bitmap bitmap = mImageView.getDrawingCache(); 
       try { 
        bitmap.compress(CompressFormat.JPEG, 100, new FileOutputStream(file)); 
       } catch (FileNotFoundException e) { 
        e.printStackTrace(); 
       } 

Ничего особенного в этом коде. Любые идеи, почему он не работает на S3? Благодарю.

ответ

0

ли какой-то глубокий чтение документации и, по-видимому Environment.DIRECTORY_PICTURES не обязательно может существовать, поэтому мы должны явно проверить, что:

File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "MyApp"); 
        if(!mediaStorageDir.exists()) { 
         mediaStorageDir.mkdirs(); 
        } 
Смежные вопросы