2011-10-09 91 views
25

我有一个应用程序,有免费的和定价的产品,我需要为我的应用程序创建两个APK,并在支持它的国家/地区显示支持应用程序内结算的应用程序,并显示同一应用程序的另一个APK支持应用内结算(它只有免费产品)在不支持它的国家/地区。是否有可能基于国家有多个APK支持?

我可以使用Android Market多APK支持功能来实现这个功能吗?如果不是,除了创建两个单独的应用程序之外,是否有任何可行的建议?

回答

17

多APK功能AFAIK不支持过滤国家至少在当前版本中。查看Supported filtersRules for multiple APKs了解更多详情。

如果你打算建立两个apks。除了使用多个APK功能(即使它在未来版本中支持过滤国家/地区),它也可以作为两个独立的应用程序(您可以在开发人员控制台中为每个应用程序区分并设置可用的国家/地区)进行更简单易用的维护。人们用来避免重复代码的正常方式是使用Android库项目。

如果您只想为所有情况构建和发布单个apk。一个可行的解决方案可以在项目资源中维护受支持的国家/地区列表,并添加一些条件分支来启用/禁用基于国家/地区列表的应用内帐单代码,并在运行时用一些UI警告确认用户,如:

if (isInSupportedCountryList()) { 
    setInAppBillingOn(); 
} else { 
    setInAppBillingOff(); 
} 

正如您所看到的,每次新的国家被Google支持或删除时,都需要(甚至不必)更新/重新发布。

+0

很好的解释!但是,如果我们只是根据要求维护每个更新的国家/地区列表,那么是否有可能实现这一目标?例如,如果版本号为x,我们上传一个国家的APK说A(仅),然后上传一个版本x + 1为另一个国家B(仅)。将这样做发布在国家A的应用程序? – bitsabhi

+0

因为即使您在代码中禁用它,您也无法将应用程序发布到没有应用内结算支持的国家/地区,所以我不认为条件限制是基于各国的工作原理。 – Arashsoft

+0

问题是,如果我想添加一个新的字符串,我必须将该字符串翻译成所有我已翻译我的应用程序的语言,否则我不会翻译字符串并翻译一个应用程序。 – Kusan

-3

您可以通过本地化您的应用程序来实现此目的。检查this

+0

恐怕你没有得到我所要求的。这与本地化无关。我需要的是在相同的应用程序在不同的国家显示不同的APK –

3

我认为最简单的事情就是上传两个单独的应用程序,然后使用“发布选项”来选择您想要的每个版本的国家。然后,您可以添加和删除“每个国家/地区”的应用程序。

enter image description here

相关问题