Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Bean87
0 / 0 / 0
Регистрация: 25.02.2016
Сообщений: 5
#1

Runtime permissions и FileNotFound - Программирование Android

29.03.2016, 08:30. Просмотров 183. Ответов 0
Метки нет (Все метки)

Доброе утро! Подскажите, пожалуйста, с такой проблемой - сохраняю нарисованное изображение в галерею таким образом:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
saveBtn.setOnClickListener(new View.OnClickListener(){
drawView.setDrawingCacheEnabled(true);
                    //attempt to save
                    String imgSaved = MediaStore.Images.Media.insertImage(
                            getContentResolver(), drawView.getDrawingCache(),
                            UUID.randomUUID().toString()+".png", "drawing");
                    //feedback
                    if(imgSaved!=null){
                        Toast savedToast = Toast.makeText(getApplicationContext(),
                                "Drawing saved to Gallery!", Toast.LENGTH_SHORT);
                        savedToast.show();
                    }
                    else{
                        Toast unsavedToast = Toast.makeText(getApplicationContext(),
                                "Oops! Image could not be saved.", Toast.LENGTH_SHORT);
                        unsavedToast.show();
                    }
                    drawView.destroyDrawingCache();
                }
}
На Андроид 4.х всё работает прекрасно. Однако на Андроид 6.0 при попытке сохранения изображения получаю ошибку:

Java
1
E/MediaStore: java.io.FileNotFoundException: No such file or directory
Это как-то связано с runtime permissions? На оф. сайте написано, что начиная с 6.0 версии permissions нужно предъявлять во время запуска, но никак не могу понять, как правильно их предъявить. И почему FileNotFound?

Добавлено через 1 час 33 минуты
Вопрос снят. Добавил permission check:

Java
1
2
3
4
5
6
7
8
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                        if (!Settings.System.canWrite(MainActivity.this)) {
                            requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,
                                    Manifest.permission.READ_EXTERNAL_STORAGE}, 2909);
 
                            //save drawing
                            saveDrawing();
                    }
По поводу FileNotFound: в только что созданном эмуляторе нет папки DCIM, поэтому я включил камеру и сделал снимок, благодаря чему создалась папка. Понял, что это можно сделать программно, но пока примерно представляю, как это сделать.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2016, 08:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Runtime permissions и FileNotFound (Программирование Android):

Android permissions - Программирование Android
Доброго времени суток! Пишу небольшое приложение, которое определяет местоположение пользователя с помощью Google Maps. Не получается...

Добавить view runTime - Программирование Android
Здравствуйте, у меня есть listView, мне нужно например в первый item добавить два textview, а во второй 4, это нужно делать runtime,...

Переопределение метода в Runtime - Программирование Android
Создаем класс именно так BroadcastReceiver receiver = new BroadcastReceiver(); Дальше, надо в receiver переопределить onReceive....

Как пользоваться Runtime.getRuntime().exec? - Программирование Android
Здравствуйте! Скачал с интернета шахматный движок. Записал его на карту памяти в каталог "tmp", а как его запустить не знаю :( Пробовал...

Как поменять цвет нажатой кнопки в runtime? - Программирование Android
Надо для кнопки менять цвета в нажатом/ненажатом состоянии. Во время работы программы. Цвет бордюра тоже надо менять. Как это делать?

FileNotFound - Python
Не открывается файл, но он точно существует. И находится в нужной директории. Что может стать причиной такой ошибки?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.03.2016, 08:30
Привет! Вот еще темы с ответами:

FileNotFound при открытом saveFileDialog - C#
В программе есть listbox, в каждой строке которого отрисовывается картинка и текст. Также есть кнопка для сохранения файла, при нажатии...

Ошибка Microsoft Visual C++ Runtime Library - Runtime Error - Софт
Здравствуйте. Буду признательна за помощь в моей беде. Совсем в этом не разбираюсь. В Safari при сохранении документа, изображения -...

Windows Runtime и Phone Runtime App: событие Suspend - Windows Phone
Скажите , когда наступает событие OnSuspend для приложения (Phone и Runtime) а то я тестирую и так и сяк, а оно у меня ни в каких случаях...

Permissions - SQL Server
Добрый день, подскажите пожалуйста можно ли использовать select permissions чтобы получить разрешения на объект для роли, а не для текущего...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru