无法连接到 Google 播放结算
Unable to connect to Google Play billing
我正在尝试简单地连接到 Google play billing & access details such as title & pricing 但我一直无法这样做。
到目前为止我做了什么(一步一步):
(在 Google 游戏机上添加了 IAP 详细信息并发布了应用程序)
在 Manifest 文件中添加了 Billing 权限 -> <uses-permission android:name="com.android.vending.BILLING" />
添加了计费库 (v.4.0) -> implementation 'com.android.billingclient:billing:4.0.0'
在 MainActivity 中初始化了 BillingClient 并尝试连接到它,onBillingSetupFinished 回调方法
没有任何响应
private void initializeBillingClient(Context context) {
billingClient = BillingClient.newBuilder(context)
.enablePendingPurchases()
.setListener(this)
.build();
connectToGooglePlayBilling(context);
}
private void connectToGooglePlayBilling(Context context) {
billingClient.startConnection(new BillingClientStateListener() {
@Override
public void onBillingServiceDisconnected() {
connectToGooglePlayBilling(context);
}
@Override
public void onBillingSetupFinished(@NonNull BillingResult billingResult) {
Toast.makeText(context, "connected to google play billing", Toast.LENGTH_SHORT).show();
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
//I should then fetch & display premium content details
}
}
});
}
很奇怪 我注意到当我启用省电模式(我使用的是三星设备)时,onBillingSetupFinished
方法在显示 toast 时被调用.
我做错了什么以及是否有人可以解释为什么启用省电模式突然可以正常工作?
确保 onBillingSetupFinished
在 UI 线程中被调用。
尝试使用 runOnUiThread
来显示消息:
runOnUiThread(() ->
Toast.makeText(context, "connected to google play billing", Toast.LENGTH_SHORT).show());
我正在尝试简单地连接到 Google play billing & access details such as title & pricing 但我一直无法这样做。
到目前为止我做了什么(一步一步):
(在 Google 游戏机上添加了 IAP 详细信息并发布了应用程序)
在 Manifest 文件中添加了 Billing 权限 ->
<uses-permission android:name="com.android.vending.BILLING" />
添加了计费库 (v.4.0) ->
implementation 'com.android.billingclient:billing:4.0.0'
在 MainActivity 中初始化了 BillingClient 并尝试连接到它,onBillingSetupFinished 回调方法
没有任何响应private void initializeBillingClient(Context context) { billingClient = BillingClient.newBuilder(context) .enablePendingPurchases() .setListener(this) .build(); connectToGooglePlayBilling(context); } private void connectToGooglePlayBilling(Context context) { billingClient.startConnection(new BillingClientStateListener() { @Override public void onBillingServiceDisconnected() { connectToGooglePlayBilling(context); } @Override public void onBillingSetupFinished(@NonNull BillingResult billingResult) { Toast.makeText(context, "connected to google play billing", Toast.LENGTH_SHORT).show(); if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) { //I should then fetch & display premium content details } } }); }
很奇怪 我注意到当我启用省电模式(我使用的是三星设备)时,onBillingSetupFinished
方法在显示 toast 时被调用.
我做错了什么以及是否有人可以解释为什么启用省电模式突然可以正常工作?
确保 onBillingSetupFinished
在 UI 线程中被调用。
尝试使用 runOnUiThread
来显示消息:
runOnUiThread(() ->
Toast.makeText(context, "connected to google play billing", Toast.LENGTH_SHORT).show());