Странное поведение камеры - PullRequest
2 голосов
/ 22 февраля 2011

Я вызываю намерение MediaStore.ACTION_IMAGE_CAPTURE с дополнительным MediaStore.EXTRA_OUTPUT, чтобы оно сохраняло изображение в этот файл.

В onActivityResult я могу проверить, что изображение сохраняется в предполагаемомфайл, который является правильным.Странная вещь в том, что в любом случае изображение также сохраняется в файле с именем что-то вроде "/sdcard/Pictures/Camera/1298041488657.jpg" (время эпохи, когда было снято изображение).

У меня естьпроверил исходный код приложения камеры (ветка froyo-release), и я почти уверен, что путь к коду верен и мне не нужно сохранять изображение, но я нуб и неполностью уверен.AFAIK, процесс сохранения изображения начинается с этого обратного вызова (мои комментарии):

private final class JpegPictureCallback implements PictureCallback {
...
   public void onPictureTaken(...){
       ...
       // This is where the image is passed back to the invoking activity.
       mImageCapture.storeImage(jpegData, camera, mLocation);
       ...

       public void storeImage(final byte[] data,
               android.hardware.Camera camera, Location loc) {
           if (!mIsImageCaptureIntent) {      // Am i an intent?
               int degree = storeImage(data, loc); // THIS SHOULD NOT
BE CALLED WITHIN THE CAPTURE INTENT!!
            .......

      // An finally:
       private int storeImage(byte[] data, Location loc) {
           try {
               long dateTaken = System.currentTimeMillis();
               String title = createName(dateTaken);
               String filename = title + ".jpg";  // Eureka,
timestamp filename!
                ...

Итак, я получаю правильные данные, но они также сохраняются в "storeImage (data, loc);"вызов метода, который не должен вызываться ...

Не было бы проблемы, если бы я мог получить вновь созданное имя файла из данных результата намерения, но я не могу.Когда я узнал об этом, я обнаружил около 20 файлов изображений из моих тестов, которые я не знал, которые были на моей SDCard:)

Я получаю такое поведение как с Nexus One с Froyo и моим Huawei U8110с эклером.

Может ли кто-нибудь просветить меня?

Большое спасибо.

...