Как я могу установить носитель для установки приложения Android на SD-карту?

И когда я говорю «установить», я имею в виду «перейти после установки». Я хочу упаковать файл фильма с помощью .apk, но он слишком велик для внутренней памяти (по крайней мере, на старых телефонах), так как составляет ~ 10 МБ.

Поскольку нет функции «запустить этот пользовательский код при установке» (разумно), я не могу сохранить на SD-карту обычным способом... верно?

Всегда есть возможность, чтобы приложение загружало фильм и сохраняло его на SD-карту при первом запуске пользователя, но тогда они не могут смотреть фильм, пока он не завершит загрузку, и это не кажется элегантным, поскольку они только что закончили загрузку. приложение и теперь придется ждать снова.

Я знаю об установке всего приложения на SD-карту, но это работает только для 2.2+, а? На достаточном количестве телефонов все еще работает 2.1, и я хочу их поддерживать.


person Turnsole    schedule 08.03.2011    source источник


Ответы (3)


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

person Nate    schedule 08.03.2011
comment
Это все еще оставляет проблему первоначальной установки носителя на SD-карту, а? Я могу перемещать вещи, как только пользователь запускает приложение, но у него все еще должно быть место для загрузки всего во внутреннюю память. Хотя я полагаю, что не так уж странно предположить, что у них есть по крайней мере столько свободного места в данный момент времени, пока я его не оставляю. - person Turnsole; 08.03.2011
comment
Я решил, что перемещение видеофайла на SD-карту при запуске - лучший вариант, доступный для кросс-версии. Я надеюсь, что с возрастом мир Android станет более однородным по версиям. - person Turnsole; 09.03.2011

вы смотрели http://developer.android.com/guide/appendix/install-location.html

Кстати, здесь идет код, добавляющий это в ваш файл манифеста.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    android:installLocation="preferExternal"
    ... >

Примечание. Возможность установки приложения во внешнем хранилище — это функция, доступная только на устройствах с API уровня 8 (Android 2.2) или выше. Существующие приложения, созданные до уровня API 8, всегда будут устанавливаться во внутреннюю память и не могут быть перемещены во внешнее хранилище (даже на устройствах с уровнем API 8). Однако если ваше приложение предназначено для поддержки уровня API ниже 8, вы можете выбрать поддержку этой функции для устройств с уровнем API 8 или выше и по-прежнему быть совместимым с устройствами, использующими уровень API ниже 8.

person ingsaurabh    schedule 08.03.2011
comment
Хотя установка всего приложения на SD-карту предпочтительнее, и я так делаю, это не работает для телефонов Android 2.1, что по-прежнему составляет 31,4% из них. Что печально. - person Turnsole; 08.03.2011
comment
в этом случае я боюсь, что это невозможно AFAIK, как указано в контексте выше, с сайта разработчика Android. - person ingsaurabh; 08.03.2011

Найдите место установки приложения в манифесте. Вы можете использовать preferExternal. Очевидно, что это будет работать только на Android 2.2, предыдущие версии всегда будут устанавливаться во внутреннюю память (если они не используют пользовательское ПЗУ).

person EboMike    schedule 08.03.2011
comment
Моя проблема заключается в том, что все еще поддерживаются все те телефоны, на которых работает 2.1. :( - person Turnsole; 08.03.2011
comment
Ничего не поделаешь, просто ОС не поддерживает. Тогда вам нужно, чтобы приложение загрузило его с сервера. - person EboMike; 08.03.2011