【问题标题】:android: Is it possible to sell add-ons for apps in the Market?android: 是否可以在 Market 中销售应用程序的附加组件?
【发布时间】:2010-11-03 03:18:50
【问题描述】:

我想免费分发我的应用程序,然后出售以后可以添加的额外功能。可以这样做吗?

【问题讨论】:

标签: android google-play


【解决方案1】:

如果你在谈论应用内支付,你应该看看 PayPal,它为 Android 提供应用内支付:

http://www.x.com

https://www.x.com/community/ppx/sdks

如果您想通过 Android Market 分发您的应用程序,您需要将每个插件作为一个单独的应用程序提供。可能不是一个方便的方法。

【讨论】:

  • 通过类似 PayPal 模式的方式收款不违反 TOS 吗?那么,假设我制作了一款游戏,并且我想销售额外的关卡,我销售的每个关卡都必须是它自己的应用程序吗?或者有没有办法告诉系统将新的“应用程序”安装到旧应用程序的结构中?
  • 好吧,Google 从来没有人在开发组或其他地方回答过这类问题,所以我会说做吧,看看它是否有效;可能发生的最坏情况是您的应用程序被启动。但到目前为止我还没有听说过。这个问题在 LinkedIn、Dev group 等上经常被问到。我想说试试看……在 LinkedIn 上,请参阅:groups.google.com/group/android-developers/browse_thread/thread/…
  • 顺便说一句:这不是一个新的应用程序,你在应用程序中添加了额外的功能并且需要在你的应用程序中处理逻辑。
  • 那么,有没有办法编写一个可以在安卓市场上出售的附加功能,并安装到原始应用中?
  • 或者我是否必须始终只编写一个没有该功能的免费版本和一个付费版本的功能,两者都是完整的应用程序。
【解决方案2】:

是的,你可以做到。市场上有很多插件可以提供更好的键盘应用程序。

【讨论】:

【解决方案3】:

你有不同的方法可以做到这一点,这里有两种我已经尝试过的方法。

1) 您可以实现应用程序中的所有功能以及解锁此功能的关键应用程序。 这是一个简单且不安全的实现,密钥应用程序和主应用程序需要使用相同的密钥进行签名:

 public boolean isPackageAvailable(String packageName) {
                int sigMatch = getPackageManager().checkSignatures(getPackageName(), packageName);
                return sigMatch == PackageManager.SIGNATURE_MATCH;
        }

在 market-enabler.googlecode.com 上查看 MarketEnabler,看看我是如何使用它的(这不是一种安全的方式,而是一个起点)。

2) 您将插件应用作为 Intent 包含在子视图中,因此看起来就像是一个应用拆分为多个 apk。

检查http://speakerproximity.googlecode.com,我用它在主视图中包含设置视图:

....
public class SpeakerProximity extends ActivityGroup {
....
mainLayout.addView(getViewFromIntent("preferences", new Intent(
                                        this, PreferenceScreen.class)));
....
public View getViewFromIntent(String tag, Intent intent) {

                /** start an activity inside an ActivityGroup and get the window handler **/
                final Window w = getLocalActivityManager().startActivity(tag, intent);

                /** extract the view out of the window handler **/
                final View wd = w != null ? w.getDecorView() : null;

                return wd;
        }
...

请注意,我扩展了 ActivityGroup 而不是 Activity ;-)

【讨论】:

    猜你喜欢
    • 2011-08-18
    • 1970-01-01
    • 2011-11-22
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    • 2011-07-19
    • 1970-01-01
    • 2011-05-25
    相关资源
    最近更新 更多