Передать файл, полученный из Storage Access Framework, процессу - PullRequest
0 голосов
/ 01 октября 2018

У меня есть приложение, которое открывает файл из хранилища, а затем передает его в программу CLI (написанную на C), которая обрабатывает его и возвращает вывод.

Для этого я использую выбор пользовательского файлабиблиотека, которая позволяет пользователю просматривать хранилище и выбирать файл, а затем возвращает путь к файловой системе, который я могу передать своей программе в качестве аргумента.

Однако для этого требуется разрешение на доступ к внешнему хранилищу.Я бы предпочел использовать вместо этого Storage Access Framework.

Есть ли способ передать файл непосредственно в программу без необходимости сначала найти его путь, например, передав ему дескриптор файла (как systemd делает дляактивация сокета)?

Дополнительные требования:

  • Программу нельзя превратить в библиотеку JNI из-за внутренней структуры.Это потребовало бы слишком больших усилий и затруднило бы объединение патчей из апстрима.
  • Я все еще могу вносить небольшие изменения в программу.
  • Я не могу прочитать файл с Java и pipeэто к стандартному вводу программы, потому что это должно искать через файл.
...