Android вылетает из-за намерения камеры

У меня опубликовано приложение, и одна из основных функций - позволить пользователю сделать снимок, а затем сохранить его в определенной папке на своем внешнем хранилище.

Кажется, все работает нормально, но теперь у меня есть два отчета, в которых утверждается, что после того, как я сделал фото и нажал «Готово», чтобы выйти из камеры (и вернуться к действию), приложение было закрыто принудительно, возвращая пользователя на главный экран.

Это происходит на Samsung Nexus S и Galaxy Tab. Ниже я разместил свой код, чтобы показать, что я настроил свое намерение и как я обрабатываю сохранение и отображение фотографии в onActivityResult (). Будем очень признательны за любые указания относительно того, что могло вызвать сбой после того, как они нажали «Готово» для выхода из приложения камеры!

Опять же, похоже, что это нормально работает на большинстве устройств, но мне было интересно, может ли я выбрать более эффективный и универсальный подход. Спасибо

Как я запускаю намерение камеры

   case ACTION_BAR_CAMERA:

        // numbered image name
        fileName = "image_" + String.valueOf(numImages) + ".jpg";


        output = new File(direct + File.separator + fileName); // create
                                                                    // output
        while (output.exists()) { // while the file exists
            numImages++; // increment number of images
            fileName = "image_" + String.valueOf(numImages) + ".jpg";
            output = new File(outputFolder, fileName);


        }
        camera = new   Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        uriSavedImage = Uri.fromFile(output); // get Uri of the output
        camera.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage); //pass in Uri to camera intent
        startActivityForResult(camera, 1);


        break;
    default:
        return super.onHandleActionBarItemClick(item, position);
    }
    return true;
}

Как я настраиваю onActivityResult ()

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);

    if (resultCode == RESULT_OK) { // If data was passed successfully

        Bundle extras = data.getExtras();

        //Bundle extras = data.getBundleExtra(MediaStore.EXTRA_OUTPUT);

        /*ad = new AlertDialog.Builder(this).create();
        ad.setIcon(android.R.drawable.ic_menu_camera);
        ad.setTitle("Save Image");
        ad.setMessage("Save This Image To Album?");
        ad.setButton("Ok", this);

        ad.show();*/



        bmp = (Bitmap) extras.get("data"); // Set the bitmap to the bundle
                                            // of data that was just
                                            // received
        image.setImageBitmap(bmp); // Set imageview to image that was
                                    // captured
        image.setScaleType(ScaleType.FIT_XY);


    }

}
22
задан Yahia 23 August 2016 в 14:52
поделиться