Я закончил свое приложение Chess UI и теперь хочу загрузить шахматный движок, чтобы проверить, действительно ли мой UI-интерфейс совместим с UCI.Шахматный движок находится в папке Download устройства Android ('/ storage / emulated / 0 / Download').Это код, который запускается:
try {
File f = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
String path = f.getAbsolutePath();
String stockfishPath = path + "/Stockfish-9-armv64v8";
engineProcess = Runtime.getRuntime().exec(stockfishPath);
processReader = new BufferedReader(new InputStreamReader(
engineProcess.getInputStream()));
String sCurrentLine;
ArrayList<String> output = new ArrayList<>();
while ((sCurrentLine = processReader.readLine()) != null) {
output.add(sCurrentLine);
}
processWriter = new OutputStreamWriter(
engineProcess.getOutputStream());
} catch (Exception e) {
e.printStackTrace();
}
Когда я запускаю его, происходит сбой в методе exec (), потому что он утверждает, что не может найти файл, даже если файл существует на устройстве Android.Я попытался запустить команду "ls" в методе exec (), но папка внутри "emulated" пуста.Очевидная причина этого, вероятно, заключается в том, что у меня нет разрешения на просмотр / доступ к этим файлам, но мне нужно знать, как я могу это сделать (несмотря на добавление READ_EXTERNAL_STORAGE и WRITE_EXTERNAL_STORAGE в файле манифеста).
Естьвозможно ли встраивать движок где-нибудь в проект (в ресурсы?) и каким-то образом adb-shell в это?