powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / Как сделать фото, если targetSdkVersio=26
3 сообщений из 3, страница 1 из 1
Как сделать фото, если targetSdkVersio=26
    #39614699
nikomp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В приложении нужно сделать фото.
Я в курсе про то, что если targetSdkVersion 26 нужно запрашивать разрешения в runtime.
По нажатию кнопки камера у меня запускается, делаю фото, жму галку. Ошибок никаких нет, но файл создается и на устройстве и на эмуляторе с размером 0 B.

Код манифеста
Код: xml
1.
2.
3.
4.
5.
6.
7.
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.CAMERA"/>
    <uses-feature android:name="android.hardware.camera" />



Код при нажатии кнопки
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
case R.id.photo:
                // Запросим разрешение
                if (ContextCompat.checkSelfPermission(this,Manifest.permission.READ_EXTERNAL_STORAGE)==PackageManager.PERMISSION_GRANTED) {
                    // сделаем и сохраним фото
                    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

                    try {
                        Uri uri= FileProvider.getUriForFile(this, BuildConfig.APPLICATION_ID + ".provider", createImageFile());
                    }
                    catch (IOException ex) {
                        Log.d("myLogs", "Ошибка createImageFile "+ex.getMessage());
                    }


                    intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
                    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
                    startActivityForResult(intent, REQUEST_CODE_PHOTO);
                }
                else {
                    Log.d("myLogs", "Запросим разрешение");
                    // Запросим разрешение
                    ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE},PERMISSION_REQUEST_CODE);
                    Log.d("myLogs", "Запросили");

                }

                break;



Код функции createImageFile()
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
private File createImageFile() throws IOException {
        // Create an image file name
        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
        String imageFileName = "JPEG_" + timeStamp + "_";
        File storageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM),"Camera");
        Log.d("myLogs",storageDir.getAbsolutePath());
        File image = File.createTempFile(
                    imageFileName,  /* prefix */
                    ".jpg",         /* suffix */
                    storageDir      /* directory */
            );
        Log.d("myLogs",image.getAbsolutePath());
        return image;
    }



Подскажите с чем может быть связана ошибка?
...
Рейтинг: 0 / 0
Как сделать фото, если targetSdkVersio=26
    #39614724
nikomp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разобрался.
Ошибка была в том, что при формировании uri, я его объявлял
Код: java
1.
Uri uri= FileProvider...


а использовал, другой, который был объявлен глобально.
Вообщем невнимательность.
...
Рейтинг: 0 / 0
Как сделать фото, если targetSdkVersio=26
    #39614758
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nikompВообщем невнимательность.
Бывает.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Android [игнор отключен] [закрыт для гостей] / Как сделать фото, если targetSdkVersio=26
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]