К счастью, с помощью нескольких команд вы можете «заставить» приложения для Android не только видеть внешнее хранилище, но и писать ему. Однако я предупрежу вас: для этого требуется несколько команд оболочки, поэтому, если вам это не нравится, осторожно пройдитесь. Кричите в Nolirium за это невероятно полезное сообщение в блоге, которое заставило меня кататься с этим. Благодаря руководству, найденному там, я смог получить эту работу без проблем.
Так как же это работает?
Короче говоря, мы будем использовать привязки привязки, чтобы в основном «привязать» папку на внешнем носителе к тому, что является частью внутренней файловой структуры. В принципе, это позволяет Android видеть содержимое внешней папки, потому что она связана с папкой на внутренней памяти, которую она может видеть без проблем.
Стоит отметить, что привязка этих папок будет работать только в Android - это не повлияет на то, как Chrome OS видит папки или файлы внутри. Мы собираемся создать папку под названием «Bound» в корне каталога «Загрузки» в Chrome OS и привязать папку на внешнем носителе к этой папке, и пока Android увидит содержимое внешней папки в каталоге Bound, Chrome OS не будет - привязка напрямую будет выглядеть полностью пустой. Но поскольку Chrome OS может взаимодействовать с внешним хранилищем, это не должно быть проблемой.
Шаг первый: создайте папки
При этом мы готовы создать каталоги, которые мы будем использовать для этого. Как я уже сказал выше, мы собираемся создать папку в каталоге «Загрузки», так что откройте приложение «Файлы Chrome OS» и перейдите в каталог «Загрузки».
Оттуда щелкните правой кнопкой мыши и выберите «Новая папка».
Если у вас есть определенный набор файлов, которые вы хотите видеть на вашем Chromebook, перейдите на свой внешний носитель и создайте здесь новую папку. Назовите его соответствующим образом - я использую «Скриншоты» для этого примера, поэтому не стесняйтесь изменять его, если это не имеет смысла для вашего приложения. Просто помните, что вам придется изменить часть приведенных ниже команд, чтобы отразить имя вашей папки.
Шаг второй: Откройте корневую оболочку и создайте привязку
Сначала вам нужно открыть окно Crosh, нажав Ctrl + Alt + T на клавиатуре. В вашем браузере откроется новое, сплошное черное окно. Кроме того, вы можете установить приложение Crosh Window из магазина приложений Chrome (для которого также требуется установить приложение Secure Shell), но это не обязательно, если вы не думаете, что часто будете использовать его.
В окне Crosh введите следующее:
shell
С последующим:
sudo su
Он будет запрашивать ваш пароль - это должен быть тот же самый, с которым вы входите в свой Chromebook.
На данный момент вы находитесь в корневой оболочке, чего мы хотим. Следующие команды должны предоставить вам доступ для чтения / записи во внешнюю папку непосредственно из приложений Android. Для целей этого урока я собираюсь сломать их по одному вовремя, но имейте в виду, что вы Можно соедините их вместе, если хотите, просто отделите каждую команду
&&
символы.
Примечание. Заголовок по умолчанию для внешнего диска в ОС Chrome «UNTITLED». Если ваш диск был назван чем-то другим, используйте это вместо «UNTITLED» в следующих командах.
В этом случае введите в окно корневого окна следующее:
mount --bind /media/removable/UNTITLED/Screenshots /run/arc/sdcard/default/emulated/0/Download/Bound mount --bind /media/removable/UNTITLED/Screenshots /run/arc/sdcard/read/emulated/0/Download/Bound mount --bind /media/removable/UNTITLED/Screenshots /run/arc/sdcard/write/emulated/0/Download/Bound
Шаг третий: прибыль
Это почти все, что нужно. Как я уже говорил ранее, это не повлияет на то, как Chrome OS видит ваши папки, только Android.
Конечно, это не идеальная система. Некоторые приложения для Android могут увидеть содержимое связанной папки, но не взаимодействует с ними. Например, я использую Skitch для аннотации скриншотов, и, хотя он может видеть все в связанной папке, он не может открыть ни один из файлов. Это, вероятно, в значительной степени связано с тем, что Skitch больше не находится в активном развитии, поэтому он довольно устарел, но он по-прежнему является хорошим примером того, насколько несовершенна эта система.
Кроме того, эта привязка не выдержит перезагрузки. Поэтому каждый раз, когда вы перезагружаете компьютер, вам придется повторно ввести приведенные выше команды. Я также видел, как некоторые пользователи потеряли доступ к связанной папке после того, как система переходит в спящий режим, но у меня лично не было этой проблемы. Как и в большинстве обходных решений, таких как этот, ваш пробег может отличаться.
Конечно, Google активно работает над включением содержимого SD-карт в Android-приложения, поэтому в итоге мы должен получить надлежащую поддержку. Но до этого момента это самое лучшее.