Android N FileUriExposedException

Ребята, мое приложение использует стандартную камеру, чтобы сделать снимок. Я использую следующий код, чтобы сделать снимок.

public void takepic(View view) {

        TextView schtitle = (TextView) findViewById(R.id.Sitename);
        String schname = schtitle.getText().toString();
            String[] tokens = schname.split(" ");
            String timeStamp = new SimpleDateFormat("dd-MM-yyyy-HH-mm-ss").format(new Date());
            String imageFileName = tokens[0] + "-" + timeStamp + ".jpg";
            TextView myAwesomeTextView = (TextView)findViewById(R.id.filetext);

          //in your OnCreate() method
          myAwesomeTextView.setText(imageFileName);
            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);    


                File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
                String name = imageFileName;
                File file = new File(path, name );
                outputFileUri = Uri.fromFile(file);
                intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
                startActivityForResult(intent, TAKE_PICTURE); 


       } 

Это отлично работает во всех, кроме Nougat

Я понимаю, как и в зефире, теперь вам нужны разрешения и вы больше не можете использовать URI файла.

Я не могу найти пример кода о том, как сделать снимок в нуге. Может ли кто-нибудь указать мне правильное направление относительно того, как мне изменить свой код, чтобы это произошло?

Любая помощь приветствуется

Отметка


person user3422687    schedule 13.11.2016    source источник
comment
Используйте FileProvider: github.com/commonsguy/cw-omnibus/tree/master. /Камера/   -  person CommonsWare    schedule 14.11.2016


Ответы (2)


Проблема в том, что файл://uri больше не разрешен.

Вместо этого вы должны использовать FileProvider.

Посмотрите здесь: https://inthecheesefactory.com/blog/how-to-share-access-to-file-with-fileprovider-on-android-nougat/en

person Bruno Pinto    schedule 12.12.2016

Просто цитирую это здесь для справки.

Теперь у нас есть обновленная документация о том, как использовать намерение камеры с файлом uri для сохранения сделанного изображения в разделе обучения Android.

https://developer.android.com/training/camera/photobasics.html

person Rahul Raveendran    schedule 30.06.2017