Closed. This question needs to be more focused。它当前不接受答案。












想改善这个问题吗?更新问题,使其仅关注editing this post一个问题。

4年前关闭。



Improve this question




我目前正在使用一个列出所有已购买应用程序的应用程序(例如Google Play商店中的“已购买的应用程序”)。
是否有解决方案来获取包含在应用帐单中的应用列表?
我们如何知道是否已购买应用程序?
为此需要扎根电话吗?

谢谢。

最佳答案

要获取支持应用程序内计费的已安装应用程序列表,您可以检查其权限:

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在给定语言环境中获取价格信息的示例。

10-07 19:41
查看更多