У меня есть приложение, которое открывает файл из хранилища, а затем передает его в программу CLI (написанную на C), которая обрабатывает его и возвращает вывод.
Для этого я использую выбор пользовательского файлабиблиотека, которая позволяет пользователю просматривать хранилище и выбирать файл, а затем возвращает путь к файловой системе, который я могу передать своей программе в качестве аргумента.
Однако для этого требуется разрешение на доступ к внешнему хранилищу.Я бы предпочел использовать вместо этого Storage Access Framework.
Есть ли способ передать файл непосредственно в программу без необходимости сначала найти его путь, например, передав ему дескриптор файла (как systemd делает дляактивация сокета)?
Дополнительные требования:
- Программу нельзя превратить в библиотеку JNI из-за внутренней структуры.Это потребовало бы слишком больших усилий и затруднило бы объединение патчей из апстрима.
- Я все еще могу вносить небольшие изменения в программу.
- Я не могу прочитать файл с Java и pipeэто к стандартному вводу программы, потому что это должно искать через файл.