Предыстория: у меня есть Android-устройство на USB-накопителе (например, RikoMagic), которое я в основном использую в режиме «без головы» Помимо прочего, я уже понял, как его отключить, используя комбинацию adb и внутренней команды «am»:
adb shell am start -n android/com.android.server.ShutdownActivity
Сейчас я пытаюсь понять, как включить и отключить поддержку USB-накопителей. Я дошел до появления окна активности USB-накопителя с помощью следующей команды:
adb shell am start -n com.android.systemui/.usb.UsbStorageActivity
К сожалению, я не смог выяснить, как отправить эквивалентное «намерение», чтобы фактически «размонтировать» или «расшарить» общий том (или «смонтировать» или «поделиться» им в этом отношении). Следующая команда ничего не делает:
adb shell am start -n com.android.systemui/.usb.UsbStorageActivity -a android.intent.action.MEDIA_UNSHARED file:///mnt/sdcard
Что я делаю неправильно? Каково волшебное заклинание монтировать / размонтировать внутреннее хранилище устройства Android?
Примечание 1: я знаю, что есть очевидная команда Linux "mount" / "umount". Однако простое подключение или отключение тома не вызовет системных функций, необходимых, например, для перезапуска или остановки приложений, которые были перемещены на SD-карту. «Umount», вероятно, в любом случае потерпит неудачу, если приложение на SD-карте все еще активно.
Примечание 2: Очевидно, есть команда «setprop», которая может включить / отключить поддержку USB-накопителя до следующей перезагрузки. Опять же, этот подход «все или ничего» - это не то, что я ищу, а возможность включать и выключать USB-накопитель в течение одного сеанса, как это можно сделать с помощью сенсорного интерфейса.
adb shell setprop sys.usb.config mass_storage