Как включить функцию перехода на SD-карту в приложении Cordova для Android

Большинство приложений Android должны предоставлять пользователям возможность выбирать место установки приложения. Я имею в виду, что никто не может купить устройство последнего поколения с 64 ГБ встроенной памяти. Некоторые из нас должны купить вместо этого SD-карту, чтобы увеличить размер, который поддерживает наше устройство.

Однако для некоторых приложений эта функция не имеет особого смысла. Например, если у вас есть виджет приложения, живые обои или другое сервисное или служебное приложение (например, файловый менеджер), ваше приложение не будет использоваться, если SD-карта извлечена. В любом случае, в этом случае вы ищете, как включить эту функцию, а это значит, что вы знаете, что пытаетесь сделать, не так ли?

Требования

Нам нужно изменить AndroidManifest.xml файл, однако мы не будем делать это вручную. Это не очень хорошая практика, так как каждый раз, когда вы строите свой проект, ваши изменения будут потеряны.

Вместо этого мы будем использовать плагин cordova-custom-config, который позволит вам изменить AndroidManifest.xml файл из вашего config.xml файл без проблем. Для установки плагина выполните следующую команду в командной строке:

cordova plugin add cordova-custom-config
# Or phonegap
phonegap plugin add cordova-custom-config

Узнайте больше о плагин здесь, в официальном хранилище здесь.

Реализация

Обычно для каждого приложения Cordova по умолчанию эта функция отключена:

Переход кордовы на сд отключен

К счастью, чтобы включить эту функцию, вам нужно добавить только свойство в файл AndroidManifest.xml. С помощью cordova-custom-config плагин, который позволяет использовать пользовательские блоки конфигурации в вашем config.xml файл вашего приложения Cordova, вам нужно добавить следующую строку в файл config.xml внутри тег :


Значение установлено в "auto" так что пользователь может решить, где установить приложение. Если это значение не присутствует вообще, поведение по умолчанию — разрешить установку только во внутреннее хранилище и не предоставлять пользователю выбор. Другие возможные значения: "internalOnly" что аналогично поведению без этой настройки, и "preferExternal", который сначала установит приложение на SD-карту, если оно доступно и имеется доступное хранилище.

Наконец попробуйте собрать приложение с помощью Cordova Run Android. Теперь эта функция должна быть включена, и ваш пользователь сможет переместить ваше приложение на SD-карту.

Перейти на sd с включенной кордовой

Информация

Обратите внимание, что с появлением Android 6.0 Marshmallow эти функции больше не доступны, поэтому не беспокойтесь, если вы проводите тестирование на устройстве Galaxy, и оно не работает, так как в этом случае ничего не происходит.

Однако цель сборки должна быть обновлена ​​как минимум до уровня API 8 (Android 2.2), в противном случае вы получите ошибку вроде error: No resource identifier found for attribute 'installLocation' in package 'android’,

В некоторых устройствах Android 6.0 Marshmallow (Nexus) пользователи могут легко перемещать его. Повеселись

Ссылка на основную публикацию
Adblock
detector