Доступ мобильного приложения к SD-карте

Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
1. kaa_ 12.12.14 10:59 Сейчас в теме
Доброго времени суток!

Возникло осложнение и не могу придумать что делать...

Есть мобильное приложение на Android. Задача - выгрузить из него XML-файл. Сам механизм готов и работает. Суть в том, что в константу прописывается путь (куда выгружать) и потом, собственно, проходит выгрузка. Проверял в отладчике на ПК, указав произвольный каталог - работает. А вот на мобильном устройстве (неважно, реальное или эмулятор) - нет. Подозреваю что дело в разрешении изменения данных на SD-карте. В свойствах конфигурации мобильного приложения уже установлены все доступные разрешения (Мультимедиа, Геопозиционирование, Контакты, Календари, Телефония). Что еще можно сделать? Помогите пожалуйста. Гугление почему-то не помогло.

Платформа - 1С:Предприятие 8.3 (8.3.5.1248)
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dj_serega 392 12.12.14 11:51 Сейчас в теме
(1) kaa_, а ошибки какие-то есть? а путь какой?
3. kaa_ 12.12.14 12:00 Сейчас в теме
Дословно пишет "Недопустимое значение параметра (параметр номер 1)". Только вот где - непонятно.
Путь - "/storage/sdcard1/dropbox/".

На ПК в отладчике путь "е:\" и там выгрузка происходит нормально.
4. dj_serega 392 12.12.14 12:12 Сейчас в теме
(3) kaa_, ну как это не понятно :) В попытку/исключение всю процедуру сохранения. а в исключении "Сообщить(ОписаниеОшибки)". И будет тебе точное место :)
5. kaa_ 12.12.14 12:20 Сейчас в теме
"Недопустимое значение параметра (параметр номер 1)" :-)
6. dj_serega 392 12.12.14 12:24 Сейчас в теме
(5) kaa_, да ну на :)
у меня вот такой код (правда не на sdкарту).
"/storage/emulated/10/Documents/" - это под пользователем.
"/storage/emulated/0/Documents/" - под админом.

Может путь не верный? и как сохраняешь?
7. kaa_ 12.12.14 12:32 Сейчас в теме
Сохраняю вот так:
ИмяФайла = ПолучитьПуть() + ПолучитьСтрокуДаты() + "_" + СокрЛП(Ссылка.Код) + "_" + СокрЛП(ПланыОбмена.Мобильные.ЭтотУзел().Код) + ".xml"; //Путь беру из строковой константы серверной функцией 
	
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл(ИмяФайла);
ЗаписьXML.ЗаписатьОбъявлениеXML();
	
 // Формируем структуру файла
	
ЗаписьСообщения.ЗакончитьЗапись();
	
ЗаписьXML.Закрыть();
Показать


А каким путем определяется правильность пути? В файловом менеджере я его вижу.
Не на SD-карту не пробовал. Сейчас попробую.

UPD
Нет. То же самое.
8. dj_serega 392 12.12.14 13:26 Сейчас в теме
(7) kaa_, у меня работает. Аналогично пишу :)
Может андрюше не нравится полный путь?
Попробуй так: "ПолучитьПуть() + /test.xml".
9. kaa_ 12.12.14 13:36 Сейчас в теме
Не совсем понятно, если честно.
Строка
ИмяФайла = ПолучитьПуть() + ПолучитьСтрокуДаты() + "_" + СокрЛП(Ссылка.Код) + "_" + СокрЛП(ПланыОбмена.Мобильные.ЭтотУзел().Код) + ".xml";

формирует файл. Функция ПолучитьПуть() имеет следующий вид:
&НаСервере
Функция ПолучитьПуть()
	Возврат Константы.КаталогЭкспортныхФайлов.Получить();
КонецФункции // ПолучитьПуть()

В итоге получается что-то наподобие "/storage/sdcard1/dropbox/12122014 93943_МП_ЦБ.xml".

Что значит "не полный путь"? :-)

Еще попробовал не использовать константы, а просто прописать путь в коде строкой. Не помогло.
10. dj_serega 392 12.12.14 14:59 Сейчас в теме
(9) kaa_, ну может из строки "12122014 93943_МП_ЦБ" не нравится " " или "_".
А на другом устройстве проверялосЬ?
11. kaa_ 12.12.14 15:20 Сейчас в теме
(10) dj_serega, проверялось на виртуальной машине еще. С именем попробую покороче, но дата и время там принципиально...
12. kaa_ 14.12.14 14:32 Сейчас в теме
В общем, проблему решил и она к пути никак не относится. Просто, по невнимательности в заголовке процедуры я забыл убрать параметр, который не больше не используется и вызывал ее без параметра. Спасибо за помощь. Мне действительно стыдно.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот