0

好的,所以我正在使用 AIR 和 AS3 开发手机游戏。这里的想法是我想为安装另一个游戏提供激励。

换句话说:用户在游戏A中点击按钮,将他们带到游戏B的应用页面。用户安装游戏B,回到游戏A,在游戏A中获得奖励。

有没有办法检测到游戏 B 已安装?最可能的方法似乎是在游戏 A 恢复时检测是否安装了游戏 B,但我似乎找不到使用 AS3/AIR 的方法。

我可能还需要为 Android 和 iOS 执行此操作,我认为这需要不同的方法。

4

2 回答 2

1

您可以通过查询 PackageManager 类来使用 java 执行此操作。在 Java 中,这看起来像这样:

isAppInstalled("your.package.name.here");

private boolean isAppInstalled(String packageName) {
    PackageManager pm = getPackageManager();
    boolean installed = false;
    try {
       pm.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES);
       installed = true;
    } catch (PackageManager.NameNotFoundException e) {
       installed = false;
    }
    return installed;
}

由于您使用的是 AS3,因此您应该构建一个原生扩展来访问 PackageManager。幸运的是,互联网很棒,其他人已经这样做了。你可以看看这个扩展。5块钱,但完全值得。我用它来做一个非常相似的逻辑。

此外,如果应用 B 是您自己的,您可以在 SD 卡目录中添加一个新文件,并与应用 A 一起检查该文件是否存在。

祝你好运:D

于 2013-10-07T01:39:33.010 回答
1

有几种方法可以回答这个问题:自定义 URL 方案: https ://developer.apple.com/library/ios/documentation/iphone/conceptual/iphoneosprogrammingguide/AdvancedAppTricks/AdvancedAppTricks.html (与其他应用程序通信部分)

这要求您尝试追加销售的应用程序确实实现了自定义 URL 方案,但实现起来很简单。一旦你有了 URL Scheme,你可以创建一个方法来检查: canOpenURL:返回一个应用程序是否可以打开一个给定的 URL 资源。

  • (BOOL)canOpenURL:(NSURL *)url (在 UIApplication 中)

如果您想要更重要的数据交换(共享登录等),您可以使用钥匙串工具: https ://developer.apple.com/library/mac/documentation/security/conceptual/keychainServConcepts/iPhoneTasks/iPhoneTasks.html

于 2013-10-06T21:30:23.453 回答