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