Как изменить место сохранения снимка экрана с помощью com.google.android.libraries.cloudtesting.screenshots.ScreenShotter

Я следовал этому руководству: https://firebase.google.com/docs/test-lab/android/test-screenshots

Однако если посмотреть на исходный код ScreenShotter:

private static final String SCREENSHOT_PATH = "/sdcard/screenshots/";
....
File imageFolder = new File("/sdcard/screenshots/");

/sdcard/screenshots/ - это расположение по умолчанию, и его нельзя изменить.

В настоящее время я получаю эту ошибку журнала:

E/cloud_screenshotter: Exception taking screenshot: java.io.FileNotFoundException: /sdcard/screenshots/<package>.MockTest-testFilterButton-isPageShown-1.jpg: open failed: ENOENT (No such file or directory)

Я пытаюсь протестировать на реальном устройстве, у которого нет слота для SD-карты, поэтому я хочу сохранить его во внутреннем хранилище.

Как я могу изменить местоположение? Или я могу использовать только библиотеку cloudtestingscreenshotter_lib.aar с лабораторией тестирования firebase?


person nommer    schedule 27.03.2020    source источник
comment
/sdcard доступен (должен быть) доступен на каждом устройстве, даже если нет явного слота для SD-карты. На каждом устройстве Android есть область памяти, которая соответствует /sdcard. Не встречал устройства, на котором его нет. Можете ли вы проверить следующее: a) Ваш тестовый пакет имеет разрешение WRITE_EXTERNAL_STORAGE, b) Папка создана adb shell ls /sdcard, вы должны увидеть папку с именем screenshots.   -  person Maik    schedule 28.03.2020
comment
У меня такая же проблема, вам удалось ее решить @nommer? У меня есть разрешения на запись / чтение для хранения, но это все равно не помогло.   -  person Joshua Augustinus    schedule 18.09.2020
comment
извините, у меня еще не было возможности попробовать решение   -  person nommer    schedule 02.10.2020


Ответы (1)


Также обратите внимание, что правила записи во внешнее хранилище изменились с Android 10 (API 29). https://developer.android.com/training/data-storage Но как Майк отметили, вы должны быть в порядке, если ваше приложение имеет разрешение WRITE_EXTERNAL_STORAGE.

person P. Davis    schedule 27.03.2020