2012-06-07 1 views
3

Так что это странно, потому что из трех устройств, на которых я тестирую, я получаю эту проблему только на Google Nexus S с 4.0.3. Я запускаю собственное приложение для камеры, чтобы сделать снимок, и мне все равно, где будет сохранено изображение, поэтому я не указываю, надеясь, что он будет сохранен в местоположении по умолчанию, но ни одно местоположение не будет сохранено на все!Android-изображение не сохраняется с помощью встроенного приложения для камеры на Nexus S

Хорошо работает на Galaxy S 2 и Samsung Skyrocket (оба с 2.3.something).

код я использую для запуска приложения

Intent camIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
startActivityForResult(camIntent, TAKE_PHOTO); 
return true; 

Я держу это на самом деле просто, поэтому я запутался! Кто-нибудь знает какие-либо вопросы, касающиеся камеры Nexus S?

EDIT: Казалось бы, что может быть приложение камеры на Nexus S экономит файл в каком-нибудь onActivityResult, и так как я запустить родное приложение камеры и не сохранять изображения по возвращению, это не спасает его , Кто-нибудь знает, что это так? Видите это поведение?

EDIT: Никто не видел этого? Я считаю, что это трудно поверить, что я первый человек, бежало в это ...

EDIT: Хорошо, хорошо после работы над ним еще немного, я попытался добавить URI в EXTRA_OUTPUT умысла, как так :

camIntent.putExtra(MediaStore.EXTRA_OUTPUT, 
          Uri.parse(folderPath + String.format("%d.jpg", System.currentTimeMillis()))); 

и теперь я вижу, поведение, описанное здесь: Android ACTION_IMAGE_CAPTURE Intent где камера приложение не делает ничего, когда я ударил нормально, и создания файла заранее не работает, либо, как я пытался так:

File f = new File(folderPath, filename); 
f.createNewFile(); 
camIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.parse(folderPath + filename)); 
+0

http://stackoverflow.com/questions/7277287/default-camera-activity-not-finishing-upon-ok-button-press/14806908#14806908 Просто проверьте выше .. может быть полезно ... проблема может быть из-за имени файла или пути (что было бы лучше, если у него не было специальных символов, таких как пробелы) – Satish

ответ

2

Хорошо, понял. Как ни странно, и я понятия не имею, почему, но изменить эту строку:

camIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.parse(folderPath + filename)); 

в

camIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file)); 

зафиксировал его. Не знаю, должен ли я понять, почему ... но что бы это ни было, это работает. Я действительно пытался миллиард других вещей ...

не указав EXTRA_OUTPUT на всех -> камера будет действовать как все было хорошо ... кроме того, что не будет сохранить изображение ВЕЗДЕ

получения растрового изображения, занятую Умножать («данные») -> возвратить растровое изображение, но это не было полноразмерное изображение, как подробно описано во многих отчетах об ошибках.

с использованием вышеуказанного метода Uri.parse -> вызывает родной кнопка приложения для камеры, чтобы ничего не делать при нажатии

Надеюсь, это поможет кому-то.

Смежные вопросы