Closed. This question needs to be more focused。它当前不接受答案。
想改善这个问题吗?更新问题,使其仅关注editing this post一个问题。
4年前关闭。
Improve this question
我目前正在使用一个列出所有已购买应用程序的应用程序(例如Google Play商店中的“已购买的应用程序”)。
是否有解决方案来获取包含在应用帐单中的应用列表?
我们如何知道是否已购买应用程序?
为此需要扎根电话吗?
谢谢。
这适用于非root用户的电话。
至于“购买的应用程序”,您是说哪些已安装的应用程序已付费但不是免费的吗?如果是这样,对于从Play下载的应用程序,由于我认为Play应用程序不支持任何此类Intent,因此我认为唯一的方法是从API这样的应用程序中获取应用程序的价格(取决于国家/地区!)。 this SO thread中列出的价格信息,例如here是如何使用android-market-api在给定语言环境中获取价格信息的示例。
想改善这个问题吗?更新问题,使其仅关注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在给定语言环境中获取价格信息的示例。