Как выпустить плагин приложения с помощью Android Market? - PullRequest
20 голосов
/ 26 января 2011

Может ли кто-нибудь описать мне решение для реализации плагина внутри приложения Android и как его можно продать в Android Market?

Как правило, вы создаете игру, в которой 4 первых уровня бесплатны.Затем пользователь должен купить что-то, используя Android Market, чтобы разблокировать дополнительные уровни.

Решением может быть перечисление пакетов, настроенных на телефоне, которые называются com.company.myApp.additionalLevelSet1, но это не так.кажется безопасным на всех!(пользователь может вручную настроить пакеты плагинов и, таким образом, свободно разблокировать дополнительные функции)

На iPhone вы можете использовать InAppPurchase для покупки не расходуемых или потребляемых продуктов.

Любая помощь или предложение могутбыть оцененнымСпасибо!

Ответы [ 2 ]

27 голосов
/ 26 января 2011

Это довольно просто в вашем случае, так как вам не нужна дополнительная логика, а просто больше уровней, поэтому я буду придерживаться этого конкретного случая:

Вы можете (или, вероятно, уже) сохранить свои игровые уровни как resources в вашем .apk, так что плагин может быть стандартным .apk, который не появится в списке Программы. Чтобы предотвратить его появление, просто не объявляйте средство запуска категории:

<intent-filter>
   <action android:name="android.intent.action.MAIN" />
   <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

Как только приведенный выше фрагмент кода НЕ появится в AndroidManifest вашего плагина, он не будет напрямую доступен для пользователя.

Когда начинается ваша основная игровая активность, она должна проверить наличие плагинов, вы можете сделать это, позвонив по номеру PackageManager.queryIntentActivities. И запрос определенного намерения, которое вы объявили в файле AndroidManifest вашего плагина, например:

<intent-filter>
  <action android:name="com.your.package.name.LEVEL_PACK" />
</intent-filter>

Код запроса будет:

PackageManager packageManager = getPackageManager();
Intent levelsIntent = new Intent("com.your.package.name.LEVEL_PACK");
List<ResolveInfo> levelPacks = packageManager.queryIntentActivities(levelsIntent, 0);

Есть и другие способы сделать это, но это довольно тривиально и понятно.

Последний шаг - доступ к уровням из установленных пакетов уровней. Вы можете сделать это, позвонив по номеру: PackageManager.getResourcesForActivity, загрузив соответствующие ресурсы и используя их по своему усмотрению.

0 голосов
/ 26 января 2011

То, что я до сих пор видел в Android Market, - это совершенно разные версии бесплатных приложений и платного контента того же приложения.

Я еще не изучал плагины, поэтому я неНе знаю, доступна ли эта функция, но если вы не можете ее найти, можно обойти ее, запустив приложения и скрыв их из главного меню добавления приложения и / или контекстного меню и просто добавив ссылку на него внутри основного приложения.

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

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

Предлагаю вам прочитать это, чтобы понять, почему приложение для нескольких приложений не очевидно в Android: Безопасность Android

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...