Приложение вылетает при попытке сделать снимок на разных устройствах — Android

#android #camera #image #android-camera #android-camera-intent

#Android #камера #изображение #android-камера #android-camera-intent

Вопрос:

Мое приложение позволяет пользователям делать снимки с помощью камеры.

Я протестировал его на нескольких устройствах (Nexus S, Nexus One, HTC Magic и Galaxy S). Приложение отлично работало на первых 3 телефонах, но сбой произошел с Galaxy.

Это код, который я написал —

 Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, "121.jpg");
values.put(MediaStore.Images.Media.DESCRIPTION,"Image capture by camera");


imageUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);

startActivityForResult(cameraIntent, 2);  
  

И это функция onActivityResult —

 @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) { 

        if (resultCode == RESULT_OK) {

                else if (requestCode == 2)
                {
                    sun=getRealPathFromURI(imageUri);
                    File f = new File(sun);
                    thePic.setImageBitmap(decodeFile(f));
                    }

        }
}
  

Результирующий код возвращается как 0 (не RESULT_OK), а затем приложение завершает работу.

Спасибо!

Комментарии:

1. Пожалуйста, добавьте вывод logcat. Это упростит поиск причины сбоя. Я сначала предполагаю, что это связано с тем фактом, что у SGS две камеры.

2. Пожалуйста, имейте в виду, что изменение параметров камеры в любой части вашего кода может вызвать проблемы на некоторых устройствах. В любом случае вывод logcat, несомненно, поможет выяснить, что происходит не так.