我今天在Google Play上有一个付费应用,我希望将其更改为3个应用内购买的免费应用。问题在于如何向现有客户“提供”应用内购买,已经支付了该应用。
我刚才有一个想法 - 可以授权吗?
现有的付费应用程序使用Google许可,但当所有功能作为应用程序内购买购买时,这不再是必要的 - 对吗? 因此,所有现有客户都拥有许可证,而所有新客户都不需要许可证。
是否可以检查许可证,如果发现允许用户访问与3个应用程序内购买相同的功能,则可以访问?
答案 0 :(得分:2)
据我所知,当购买尚未免费时(例如通过优惠券),没有任何好方法可以免费为用户提供应用内购买。
在How can I use the paid version of my app as a “key” to the free version?
上讨论了一些可行的方法执行此操作的一种方法是使用一些代码检查“遗留用户”(已安装旧付费应用的用户),并在其设备上设置首选项,将其标记为拥有付费应用。
如果用户切换手机或卸载然后重新安装您的应用,您将遇到问题。您可以通过为免费的旧用户添加第二组应用内商品来规避这一点,但仅限于安装了旧应用的用户。购买免费旧版本后,他们可以卸载旧应用程序。然后,无论何时检查购买的产品,都要检查旧产品或新产品。
答案 1 :(得分:1)
我认为您可以执行此类操作,以验证“专业”应用是否可用且由相同签名进行签名。
public boolean isProAppPresent()
{
try
{
PackageInfo info = context.getPackageManager().getPackageInfo("x.x.x.pro",
PackageManager.GET_META_DATA);
Log.d(TAG, "Pro app is installed: " + info.applicationInfo.name);
return context.getPackageManager().checkSignatures("x.x.x",
"x.x.x.pro") == PackageManager.SIGNATURE_MATCH;
}
catch (NameNotFoundException e)
{
return false;
}
}
很容易做到,但我不确定它是否是完全保护。