如何使用Android Market发布应用程序插件?

有人可以描述一个在Android应用程序中实现插件的解决scheme吗?它怎么能在Android Market上销售?

通常情况下,你创build一个游戏,其中4个第一级是免费的。 然后,用户应该使用Android Market购买一些东西来解锁额外的关卡。

一个解决scheme可能是列出名为com.company.myApp.additionalLevelSet1在手机上设置的包,但它似乎并不安全! (用户可以手动设置插件包并自由解锁附加function)

在iPhone上,您可以使用InAppPurchase购买非易耗品或易耗品。

任何帮助或build议,将不胜感激。 谢谢!

Solutions Collecting From Web of "如何使用Android Market发布应用程序插件?"

这很简单,因为你不需要任何额外的逻辑,只是更多的层次,所以我会坚持这个特定的情况:

你可以(也可能已经)将你的游戏关卡作为资源保存在你的.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并加载相关资源并按照您的意愿使用它们。

我在Android电子市场迄今看到的是完全不同版本的应用程序免费与付费内容相同的应用程序。

我还没有查看插件,所以我不知道这个function是否可用,但是如果你找不到它,一个解决方法可能是启动应用程序并将它们从添加应用程序隐藏到主菜单和/或快捷菜单,并在主应用程序中添加一个链接。

另一个解决方法是处理您的额外内容,如付费内容库,如果资源不可访问,则只需阻止级别访问。 但是,您必须确认您是否有权将私人馆藏与申请分开。

基本上你要做的就是像苹果和Android这样的内容托pipe商试图避免或控制的内容,因为它可以让你将新的内容传输到你的应用程序,而内容主机不知道它实际上是另一个应用程序的新内容。

我build议你阅读这个来理解为什么多个应用程序应用程序在Android中并不明显: Android安全