0

我知道 Google Play 有一个出色的应用内购买系统。然而,我的想法是,普通大众将应用内购买策略的鸽子洞游戏列入“禁忌”名单。

此外,我是一名单人应用程序开发人员(就像我们大多数人一样),并且不希望不必设置服务器和管理签名验证任务。

是否可以将游戏的附加包作为单独的 APK 出售?

如果是这样,这叫什么,是否有示例说明如何执行此操作?

您如何使 APK 不出现在应用程序抽屉中?我不想弄乱用户的应用程序抽屉。

这样做的“最佳实践”策略是什么?

我是否必须创建某种“附加”管理器?

我想出的策略是,在启动应用程序时,我会让它查看​​可能的附加组件列表。如果该加载项是从 Google Play 购买的,那么这些资产将包含在应用程序中并可用。

当我创建更多附加包时,我将更新主应用程序,以便它有一个更新的附加组件列表来查找。我知道这会延迟应用程序的启动,但我预计在此应用程序的整个生命周期内不会有超过 100 个附加包。

我很想听听您对此的想法、讨论和提示!

谢谢!

4

1 回答 1

0

您的主游戏应用可以使用 PackageManager 查找已安装的扩展:

PackageManager pm = activity.getPackageManager();

try {
    pm.getPackageInfo(EXT_PACKAGE_NAME, 0);
    extExists = true
} catch(NameNotFoundException e) {
    log.info("Extension not present.");
}

最重要的是,您还应该验证扩展的包签名。否则,有人可以创建一个具有扩展包名称的应用程序并在您的游戏中解锁该功能。

PackageInfo pi = pm.getPackageInfo(EXT_PACKAGE_NAME, PackageManager.GET_SIGNATURES);
// There will be practically only 1 signature unless you compile the APK with
// multiple signatures
Signature s = pi.signatures[0];
extExists = s.hashCode() == EXT_HASHCODE;

这个 SO question回答了如何从抽屉中隐藏扩展应用程序图标。

您还需要定期检查您的扩展是否仍然存在。想象一下,有人购买了一个扩展程序,运行你的游戏一次并解锁了扩展程序,然后要求为扩展程序退款。

我对遵循这种方法的 2 美分:我猜很多客户会将这些扩展与您的游戏混淆。无论如何,大多数人都不阅读应用程序描述文本。因此,您需要明确表示他们即将购买扩展程序。

此外,您将使您的客户很难将所有东西保持在适当的位置。想象一下,一位客户购买了您的主游戏和 20 个扩展程序。当她切换设备或恢复出厂设置时,将需要重新下载所有这些扩展程序。应用内购买让这里的生活更轻松。

最后但并非最不重要的一点是,您不能拥有可消耗的应用内物品。您不能重复购买相同的扩展名。

于 2013-08-13T17:14:17.380 回答