Я бы хотел иметь возможность записывать звук с внутреннего микрофона с помощью команд adb. Проблема с tinycap заключается в том, что я считаю, что он обходит DSP (это БОЛЬШОЙ нет-нет). Воспроизведение аудио достаточно просто с помощью утилиты Activity-Manager adb shell am start -a android.intent.action.VIEW -d file:///sdcard/Music/%file% -t audio/wav
. Это будет воспроизводить звук с медиапроигрывателем по умолчанию.
Я надеялся, что будет что-то похожее, но вместо этого для захвата звука и сохранения в файл в течение определенного периода времени. Я просмотрел Android документацию, относящуюся к adb, намерениям, действиям, и даже немного копался в их аудио и медиа рекордерах. Проблема, которую я имею, состоит в том, чтобы преобразовать эти интерфейсы в аргументы, чтобы передать их менеджеру активности или менеджеру пакетов в оболочке. Интересно, возможно ли это вообще сделать или это дурацкое поручение?
Мне удалось открыть собственное приложение Sound Recorder с помощью adb shell am start com.android.soundrecorder
, но больше ничего, что я на самом деле добавляю к этой команде делает как положено Activity-Manager действует по указанному INTENT. Содержимое состоит из действий, URI данных, типов MIME, категорий, имен компонентов и других посторонних ключей, которые, по моему мнению, не имеют отношения к моей ситуации. Я просмотрел доступные действия, которые перечислены как константы здесь . Но ничто не создает у меня впечатления, что мое намеченное действие выполнимо.
Альтернативой может быть работа с тем, что у меня есть, - возможность по крайней мере открыть приложение рекордера, а затем записать сенсорные события в файл и перенаправьте этот файл на соответствующее событие ввода, как показано здесь , для обработки нажатия кнопки записи. Но тогда я должен был бы найти способ автоматизировать сохранение файла, когда "Сохранить запись?" диалог представляет себя; и это просто действительно усложняет ситуацию и сводит на нет любые усилия с автоматизацией.
Я не имею никакого опыта с API Android, кроме того, что я исследовал в этом начинании, поэтому я прошу прощения, если мой Вопрос тривиален для некоторых. Но я бы очень признателен за любую помощь.
Заранее спасибо!