Время от времени происходит сбой приложения во время фотосъемки с использованием намерения камеры, и Logcat отображает только завершение процесса - PullRequest
0 голосов
/ 28 февраля 2020

Я использую камеру для захвата изображений в моем приложении. Проблема в том, что приложение иногда падает (то есть не всегда) после фотографирования. На LogCat не отображается сообщение об ошибке, а только процесс завершается. Вот пример кода

public void openCameraIntent(String question, int position) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            if (checkSelfPermission(Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED) {
                this.question = question;
                this.position = position;

                Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                if (intent.resolveActivity(getPackageManager()) != null) {
                    File photoFile = null;
                    photoFile = ImageUtils.createPhotoFile();

                    if (photoFile != null) {
                        pathToFile = photoFile.getAbsolutePath();
                        Uri photoUri = FileProvider.getUriForFile(this, "com.app.my.provider", photoFile);
                        intent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
                        startActivityForResult(intent, 1);
                    }
                }
            } else {
                requestPermissions(new String[]{Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_CAMERA_OPEN);
            }
        }



public static File createPhotoFile() {
        String name = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
        File storageDir = getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
        File image = null;
        try {
            image = File.createTempFile(name, ".jpg", storageDir);


        } catch (IOException e) {
            e.printStackTrace();
        }
        return image;
    }

@Override
    protected void onActivityResult(int requestCode, int resultCode,
                                    Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (resultCode == RESULT_OK) {
            if (requestCode == 1) {

                uploadWithTransferUtility(Utils.convertBitmapFile(this, "aws", Utils.waterMark(this, Utils.fileToBitmap(pathToFile),
                        Utils.getDeviceName() + " " + Utils.timeStamp())));
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...