Создание / запись файлов на Pepper QISDK - PullRequest
0 голосов
/ 19 февраля 2020

Мы хотим сделать снимок на Pepper Robot и сохранить его (каким-то образом) -> Первая идея - сжать в файл .jpg.
TakePicture действие взято из учебника QISDK, затем мы создаем файл, как указано ниже:


    File file = new File("image.jpg");
    try {
        file.createNewFile();
    } catch (IOException e) {
        e.printStackTrace();
    }
    try {
        FileOutputStream out = new FileOutputStream(file);
        getPicture().compress(Bitmap.CompressFormat.JPEG, 100, out); 
    // getPicture() is The Bitmap we get from TakePicture Action.
        Log.i("COMPRESSED", "SUCCES");
        out.close();
    } catch (IOException e) {
        Log.i("COMPRESSED", "FAIL");
        e.printStackTrace();
    }

Но код выдает исключение IOException Файловая система только для чтения. Это означает, что среда Robot предотвращает создание / запись файлов, что Я считаю, что по соображениям безопасности. Но изображение в растровом формате - это не то, что нам нужно.
Есть ли какие-либо возможные обходные пути или решения этой проблемы?

1 Ответ

0 голосов
/ 20 февраля 2020

Я нашел решение , я только что создал файл с


        file = File.createTempFile("image", ".jpg", this.getCacheDir());

Таким образом, он позволяет создать полностью записываемый временный файл, который впоследствии может быть сжат , отредактированный et c.
Использование абсолютного пути к папке / temp android также может работать, но это зависит от Android версии.

...