Мое приложение нуждается в гарантированном времени для завершения ввода-вывода на SD-карте до того, как SD-карта будет размонтирована. Мое решение состоит в том, чтобы написать модуль ядра linux, который вставляет обертку вокруг системного вызова umount, который задерживает фактический umount и перезвонит мне, чтобы завершить мою работу.
Мой код может иметь привилегированные компоненты root.
Любые менее обструктивные решения?
Хотя я не могу этого гарантировать, я считаю, что umount будет автоматически ждать этого. Это одна из причин использования umount (вместо прямого удаления sdcard).
Кроме того, вы не можете "написать модуль ядра Linux" и "установить" его в устройство Android. То, что вам нужно было сделать, будет включать перекомпиляцию Android, создание пользовательского ПЗУ и установку его на нужное устройство. Каждому устройству понадобится другое ПЗУ и т.д. Я не думаю, что это возможно для вас.
В любом случае, umount должен дождаться завершения любой операции ввода-вывода (возможно, с таймаутом). Я не вижу решения в случае, если у вас есть несколько файлов для отправки и что необходимо, чтобы все они были записаны.