2016-05-13 5 views
2

Я пытаюсь сохранить некоторые дампы экрана во внутреннем хранилище для целей отладки, но я не могу получить доступ к ним. . Когда я называю FileSystemStorage.getInstance() getAppHomePath(), я получаю путь, который выглядит примерно так:Сохранение файлов в CodenameOne

/data/data/com.mycompany.myapp/files/

Но я не могу видеть эту папку в инструменте передачи файлов Android, поэтому я не могу перетащить файлы на свой Mac. Я также попытался связать их с электронной почтой, используя класс Message, но по какой-то причине вложения так и не появились. Я заметил, что много приложений хранят данные в папках, как это:

/Android/data/com.doubletwist.androidplayer/ 

Если я пытаюсь создать папку, как это, я бегу на две проблемы. Во-первых, это не зависит от платформы. (Это не имеет большого значения, потому что я просто делаю это для отладки.) Во-вторых, это не работает. Я получаю сообщение о том, что мне нужно использовать каталог, возвращаемый FileSystemStorage.getInstance(). GetAppHomePath()

Есть ли способ сохранить файлы в папке, из которой я действительно их извлечу? Было бы более полезно, если бы у меня был независимый от платформы способ, но любой способ, который работает, сейчас прекрасен.

ответ

0

Файловая система - это очень «неспортивное» понятие. По умолчанию приложение home - это частная папка, в которой некоторые мобильные ОС, включая Android 4+, остаются закрытыми и недоступными.

Android имеет концепцию «sdcard», которая раньше была физическим хранилищем, где вы могли писать что-либо в любом каталоге без проблем. Это более не применимо для более поздних версий Android, но вы можете прочитать его из каталога sdcard и обнаружить его.

FileSystemStorage имеет API для получения корней и их типов, если у вас есть тип sdcard, который вы можете прочитать оттуда. Вы можете использовать FileTree, чтобы увидеть иерархию файлов, как показано на вашем приложении, которая может быть полезна для отладки.

+0

Благодарим вас за разъяснение. Похоже, я могу писать только в один каталог, который никто другой не видит. Тем не менее, другие приложения для Android имеют возможность записывать в каталоги на/Android/data//path. Это было бы очень приятно иметь. Как бы то ни было, я даже не могу использовать свою почтовую программу для прикрепления файлов, которые я создаю, потому что они не видят их. Я не так хорошо знаком с другими платформами, но было бы очень полезно, если CodenameOne предоставил метод для создания/возврата каталога пользователя, который могли видеть другие. – MiguelMunoz

+0

Это не то, что я сказал, см. Параграф «sdcard». –

+0

Возможно, мы недопонимаем друг друга. Параметр «sdcard» говорит мне, что я не могу писать на SD-карту. Файлы, которые я хочу прикрепить, - это файлы, которые я создал, поэтому я могу только сохранить их в каталоге, который моя почтовая программа не может видеть. – MiguelMunoz

Смежные вопросы