将付费Android应用与免费版合并

时间:2015-02-25 05:15:11

标签: android ipc

我有一个Android应用程序,有两个版本:免费版和高级版,功能更多,价格为0.99美元。

我希望采用In App Purchase方式,可以在免费版中购买高级功能。但是,我显然不想让已经购买付费应用的用户感到不安。

有没有经过验证的方法将单独的免费增值应用合并为一个?

现在,我正在考虑我提出的解决方案,如果检测到应用的付费版本安装在设备上,免费版会自动解锁其付费功能。我正在考虑在应用程序之间使用进程间通信。但是我没有IPC的经验,特别是在Android上,我不确定它是否适用于此处或特别强大。

1 个答案:

答案 0 :(得分:1)

  

但是,我显然不想让已经购买付费应用的用户感到不安。

除非您为IAP收费少于付费应用以获得相同功能,否则我不确定这会导致任何用户投诉。无论他们是预付款还是以后付款,如果价格相同,那都无关紧要。

  

我正在考虑我提出的解决方案,如果它检测到应用的付费版本安装在设备上,免费版会自动解锁其付费功能。

只需查询PackageManager以查看是否安装了其他应用,就可以轻松完成此操作。类似的东西:

try {
    PackageInfo info = getPackageManager().getPackageInfo("com.example.paidapp", 0);

    //If we got here, the paid app is installed.
    // You can even check metadata, like which version they have
    int installedVersion = info.versionCode;
} catch (PackageManager.NameNotFoundException e) {
    //Paid app is not installed!
}

有些应用已经出于各种原因,使用"付费"打包作为免费应用程序的关键,因此它并非没有先例。

您可能需要参与的唯一IPC是,如果您想以某种方式将付费应用中的某些已保存数据读入免费应用。在这种情况下,我建议实现ContentProvider以向其他应用程序公开所需的数据元素。我还会以signature权限保护该提供商,以便只有您的应用程序才能访问它。

相关问题