安卓应用程序-精简版或付费版



我正在开发一个android应用程序与单一源库。我希望提交免费和付费版本的应用程序。对于免费版本,我计划禁用一些功能,并为付费版本提供更多功能。有没有办法找到android应用程序是免费的或付费的java代码?

编辑1:在windows phone " app. xml .cs"文件中包含以下方法来识别windows phone应用程序的免费或付费版本。

private void Application_Launching(object sender, LaunchingEventArgs e)
{
   var license = new Microsoft.Phone.Marketplace.LicenseInformation();
   IsTrial = license.IsTrial();
}

这里的istail是返回真或假的属性。Android是否有任何方法可以检测免费或付费版本?

Google Play Services不提供任何API来访问与运行应用相关的Google Play元数据。应用许可可能是一种前进的方式,但用户Sandy提到它不能用于付费应用(听起来很奇怪)。

我建议另一种方法:

  • 除非你提供一个单一版本的应用程序,并提供从免费版本升级到付费版本的应用程序内购买,否则你必须将两个不同的版本上传到Google Play(因为两个应用程序的包名称不能相同)。

  • 因为你必须构建两个不同版本的应用,所以你可以在编译时预处理编译后的代码,并替换免费版本和付费版本之间不同的部分代码。有了精心设计的代码,这应该完全不是问题。图书馆项目应该适合这个

  • 另一个选择是在编译时提供两组不同的数据/配置文件,通过配置/启动参数的方式控制应该激活代码的哪一部分。

如果你能提供更多关于应用程序的信息,就更容易提出一个好的解决方案。这是一款付费应用拥有更多关卡的游戏?这款应用的某些功能是免费版所没有的吗?在免费版本中,它是一款限定每天使用次数的应用吗?

更新:你提到你想在免费应用程序中禁用评论,而在付费应用程序中,评论应该发布到你的服务器。我认为最好的方法是将付费和免费逻辑分为两个库项目,在构建付费版本时使用一个项目,在构建免费版本时使用一个项目:

  1. 创建两个库项目,一个是免费应用程序的代码,一个是付费应用程序的代码。在这两个项目中,你应该有一个叫做CommentPoster的类或类似的东西。让这两个类从你的主项目中实现一个接口,定义当用户发布评论时将被调用的方法,让我们把它叫做ICommentPoster,并有一个方法叫做postComment(字符串评论)。

  2. 让付费版本的CommentPoster类的postComment()方法将评论发送到服务器

  3. 让免费版本的CommentPoster类的postComment()方法创建一个对话框,toast或其他方式告诉用户这个函数不可用。如果你想让用户事先知道评论不可用,你可以在ICommentPoster中选择另一个方法isAvailable()

如果你真的不喜欢两个库项目的想法,并希望保持所有的代码在一个项目中,你可以做一些预处理,包括一个两个不同的配置文件,并让应用程序读取配置文件,以检查是否应该提供注释。这样做的缺点是很容易被破解,因为你需要在你的应用程序中拥有所有的代码,这只是一个修改配置文件的问题,以获得付费版本的好处(我猜最有可能在根设备上的风险更高)

目前不支持。您可以使用许可服务(LVL)检查用户是否购买了付费应用,但不能在付费应用中使用。

最新更新