android - 获取已购买应用列表 Android

标签 android in-app-purchase in-app-billing google-play-services google-play

<分区>

我目前正在开发一个列出所有购买的应用程序的应用程序(例如 Google Play 商店中的“已购买的应用程序”)。 是否有解决方案来获取应用计费中包含的应用列表? 我们如何知道应用程序是否已被购买? 为此需要 root 手机吗?

谢谢。

最佳答案

要获取支持应用内结算的已安装应用列表,您可以检查它们的权限:

final List<PackageInfo> inAppBillingEnabledPackages = new ArrayList<PackageInfo>();
final PackageManager pm = getPackageManager();
final List<PackageInfo> installedAppInfo = pm.getInstalledPackages(PackageManager.GET_PERMISSIONS);
for (final PackageInfo packageInfo : installedAppInfo) {
    if (packageInfo.requestedPermissions != null) {
        for (final String permissionInfo : packageInfo.requestedPermissions) {
            if ("com.android.vending.BILLING".equals(permissionInfo)) {
                inAppBillingEnabledPackages.add(packageInfo);
            }
        }
    }
}
// inAppBillingEnabledPackages now contains a list of packages supporting in-app billing

这适用于非 root 手机。

至于“已购买的应用程序”,您是指哪些已安装的应用程序已付费且不是免费的?如果是这样,对于从 Play 下载的应用程序,由于我认为 Play 应用程序不支持任何此类 Intent,我想唯一的方法是从 API 中获取应用程序的价格(这取决于国家!) this SO thread 中列出的那些,例如 here这是一个如何使用 android-market-api 获取给定语言环境中的价格信息的示例.

关于android - 获取已购买应用列表 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21311107/

相关文章:

android - 具有矢量可绘制大小的 ImageView

ios - 应用已上线但未提交 InApp Purchase

android - 如何在 Google Play 上使用测试帐号? GooglePlay 始终将我视为购买者

ios - 应用内购买验证

android - 应用内结算 : Item not found

android - UnManaged 选项在 google play developer console 中不可用

java - 如何为线程设置名称?

android - 如何添加gridview setOnItemClickListener

android - 每次在三星设备上更新应用程序时小部件都会消失

iphone - 应用内购买返回 0 个产品