安卓应用如何制作试用版?

5

在我的应用中,我想要实现试用版和完整版功能。所有用户都可以使用试用版,而只有购买完整版的用户才可以使用完整版。请提供实现此功能的方法。

4个回答

5
我能想到两种方法来实现这个目标:
  1. 构建两个版本的apk文件并发布到Android市场。
    • 一个将是试用版,启用广告或具有有限的功能
    • 第二个将作为付费应用程序提供,解锁全部功能。
  2. 将应用程序发布为试用版,并添加支持应用内购买的功能,以解锁应用程序的全部功能。这通常被称为Freemium(http://en.wikipedia.org/wiki/Freemium)类型的应用程序。
我推荐第二种方式,因为用户只需要下载一次应用程序。
请参阅Android的应用内计费文档:http://developer.android.com/guide/market/billing/index.html 希望这可以帮助您。干杯!

但请注意,谷歌并不支持在一些国家销售付费应用程序/应用内购买。如果您所在的国家(如印度)未列在此列表中(http://support.google.com/googleplay/android-developer/bin/answer.py?hl=en&answer=150324),那么您就没有机会了。那么您就必须求助于第三方集成来进行购买。 - Hari Krishna Ganji
+1 给 @OvidiuLatcu。我认为应用程序许可证将更优雅地实现您的目的。谢谢! - Hari Krishna Ganji

4

我认为其他答案所提供的不是我所谓的“试用版”。这些方案更像是“Lite”与“Pro”应用程序的区别。

我认为试用版应该是一个功能完整的应用程序,在X天/周后过期。


4
我遇到了同样的问题很多次,所以我决定开发一个Android Trial Library,你可以将其简单地添加到你的项目中,它将为你处理所有的服务器端管理(包括离线优惠期)。
使用它,只需要: 将库添加到你的主模块的build.gradle
dependencies {
  compile 'io.trialy.library:trialy:1.0.2'
}

在您的主要活动的onCreate()方法中初始化库

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    //Initialize the library and check the current trial status on every launch
    Trialy mTrialy = new Trialy(mContext, "YOUR_TRIALY_APP_KEY");
    mTrialy.checkTrial(TRIALY_SKU, mTrialyCallback);
}

添加回调处理程序:

private TrialyCallback mTrialyCallback = new TrialyCallback() {
    @Override
    public void onResult(int status, long timeRemaining, String sku) {
        switch (status){
            case STATUS_TRIAL_JUST_STARTED:
                //The trial has just started - enable the premium features for the user
                 break;
            case STATUS_TRIAL_RUNNING:
                //The trial is currently running - enable the premium features for the user
                break;
            case STATUS_TRIAL_JUST_ENDED:
                //The trial has just ended - block access to the premium features
                break;
            case STATUS_TRIAL_NOT_YET_STARTED:
                //The user hasn't requested a trial yet - no need to do anything
                break;
            case STATUS_TRIAL_OVER:
                //The trial is over
                break;
        }
        Log.i("TRIALY", "Trialy response: " + Trialy.getStatusMessage(status));
    }

};

要开始试用,请拨打mTrialy.startTrial("YOUR_TRIAL_SKU", mTrialyCallback);。您的应用程序密钥和试用SKU可以在开发人员仪表板上找到。


2

您还应该查看Android应用程序许可证。我不确定这是否完全符合您的想法,但我相信您可以根据自己的需求进行调整,这将是正确的解决方案。


我的理解是应用程序许可证是一种用户验证方法。例如,如果用户在Google Play上购买了您的应用程序,然后将其提供给朋友,在未与购买者帐户关联的设备上进行侧载,那么该系统可能会检测到违规行为并阻止执行。但是,我认为这个功能本身不支持从用户收集资金,就像应用内支付一样,如果我正确的话,那么这可能不适合您的需求。 - Carl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接