объединить несколько приложений в одно приложение - PullRequest
5 голосов
/ 12 марта 2011

Я занимаюсь разработкой приложения для Android, которое использует несколько сторонних приложений, называемых намерениями, например сторонний календарь, веб-радио и т. д. Таким образом, чтобы правильно запустить эти намерения, необходимо установить эти приложения. Можно ли включить эти apks в мое приложение, чтобы они также автоматически устанавливались при настройке моего приложения? Кажется, это довольно плохой способ позволить пользователю устанавливать эти приложения вручную ...

Есть предложения?

Спасибо Питер

1 Ответ

7 голосов
/ 12 марта 2011

Возможно ли включить эти apks в мое приложение, чтобы они также автоматически устанавливались при настройке моего приложения?

Это, вероятно, не очень хорошая идея.

Для начала, это, вероятно, нарушение авторских прав, если только у вас нет явного разрешения этих разработчиков на комплектацию таким образом.

Затем возникает вопрос, действительно ли эти разработчики представили API, который они ожидают от васиспользовать этот способ, и является ли этот API уникальным для них или является частью общей системы (например, ACTION_SEND).Пользователи должны иметь возможность устанавливать любые приложения, которые они хотят, которые выполняют общий запрос Intent (например, ACTION_SEND), и не должны быть вынуждены использовать какое-либо приложение, которое вам требуется.И вам не следует интегрироваться в приложения, которые не предоставляют документированный и поддерживаемый API или иным образом указывают на то, что они заинтересованы в такой интеграции.

Тогда возникает вопрос, могут ли эти приложения быть позже обновлены, если они изначально не были установлены через какую-либо стандартную службу распространения (например, Android Market).

Тогда все эти файлы APK имеют дело с тем, что ваш собственный файл APK становится намного больше, занимая гораздо большеместо на устройстве.

Если вы можете пройти через все это, это должно быть возможно.Упакуйте APK как активы, скопируйте их при первом запуске на внешнее хранилище, затем запустите ACTION_VIEW Intent на них через startActivity(), используя правильный тип MIME.

Однако, опять же, это, вероятно,хорошая идея.

Кажется, это довольно плохой способ позволить пользователю устанавливать эти приложения вручную ...

В идеале, ваше приложение не должно зависеть от этихдругие приложения, поэтому не будет иметь большого значения, есть ли у пользователя их или нет.Вы можете определить, есть ли они там с помощью PackageManager и queryIntentActivities(), а затем использовать это, чтобы определить, хотите ли вы отключить части своего приложения, или направить пользователя к установке дополнительных приложений и т. Д.

...