问题描述:尽管设置了印度区域的初始价格(introductory price),但是在使用Android Google Billing SDK的过程中,该价格并未显示。
以下是解决该问题的步骤和代码示例:
第1步:确保应用程序在Google Play中已经上架并且为订阅模型创建了定价页面。
第2步:在应用程序开发中,使用Google Billing SDK时,请添加以下依赖项:
implementation 'com.android.billingclient:billing:3.0.0'
第3步:在MainActivity或其他应用程序活动中,创建BillingClient实例并连接到Google Play,然后查询商品:
private BillingClient billingClient;
billingClient = BillingClient.newBuilder(this)
.enablePendingPurchases()
.setListener(this)
.build();
billingClient.startConnection(new BillingClientStateListener() {
@Override
public void onBillingSetupFinished(@NonNull BillingResult billingResult) {
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
// The billing client is ready. You can query purchases here.
List skuList = new ArrayList<> ();
skuList.add("product_sku");
SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder ();
params.setSkusList (skuList);
params.setType (BillingClient.SkuType.SUBS);
billingClient.querySkuDetailsAsync(params.build(),
new SkuDetailsResponseListener() {
@Override
public void onSkuDetailsResponse(BillingResult billingResult,
List skuDetailsList) {
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK
&& skuDetailsList != null) {
// Process the result.
}
}
});
}
}
@Override
public void onBillingServiceDisconnected() {
// Try to restart the connection on the next request to
// Google Play by calling the startConnection() method.
}
});
请注意,在上面的代码中,对'debug”和'release”构建变量进行正确配置。
第4步:检查Purchase对象中的SKU详细信息,并强制转换为SubscriptionPurchase来读取订阅详细信息:
Purchase.PurchasesResult purchaseResult = billingClient.queryPurchases(BillingClient.SkuType.SUBS);
if (purchaseResult.getPurchasesList() != null) {
for (Purchase purchase : purchaseResult.getPurchases