У меня опубликовано приложение, и одна из основных функций - позволить пользователю сделать снимок, а затем сохранить его в определенной папке на своем внешнем хранилище.
Кажется, все работает нормально, но теперь у меня есть два отчета, в которых утверждается, что после того, как я сделал фото и нажал «Готово», чтобы выйти из камеры (и вернуться к действию), приложение было закрыто принудительно, возвращая пользователя на главный экран.
Это происходит на 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);
}
}