未连接 onBillingSetupFinished 方法
Not connecting with onBillingSetupFinished method
我试图在 onBillingSetupFinished 方法中显示 Toast,但它从未与之连接。
代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityMainBinding activityMainBinding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(activityMainBinding.getRoot());
BillingClient billingClient = BillingClient.newBuilder(this).enablePendingPurchases().setListener(this).build();
billingClient.startConnection(new BillingClientStateListener() {
@Override
public void onBillingServiceDisconnected() {
Toast.makeText(MainActivity.this, "A", Toast.LENGTH_SHORT).show();
}
@Override
public void onBillingSetupFinished(@NonNull BillingResult billingResult) {
Toast.makeText(MainActivity.this, "B", Toast.LENGTH_SHORT).show();
}
});
}
@Override
public void onPurchasesUpdated(@NonNull BillingResult billingResult, @Nullable List<Purchase> list) {
Toast.makeText(this, "C", Toast.LENGTH_SHORT).show();
}
权限
<uses-permission android:name="android.permission.INTERNET"/>
我将 apk 上传到 Google Play 商店,他们接受了,但代码仍然无法正常工作。
您的代码运行良好。只是你无法得到吐司。
您可以做两件事:
将吐司替换为
Log.d("GoogleBillingService", "onBillingSetupFinished: billingResult: Yes/Your Result");
并查看 GoogleBillingService 的 LogCat 以获得结果。
toast 可能 运行 在不同的线程上运行,因此当您 运行 应用程序时您看不到它。
尝试使用
((Activity)context).runOnUiThread(new Runnable()
{
public void run()
{
Toast.makeText(context, toast, Toast.LENGTH_SHORT).show();
}
});
希望对您有所帮助!
我试图在 onBillingSetupFinished 方法中显示 Toast,但它从未与之连接。
代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityMainBinding activityMainBinding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(activityMainBinding.getRoot());
BillingClient billingClient = BillingClient.newBuilder(this).enablePendingPurchases().setListener(this).build();
billingClient.startConnection(new BillingClientStateListener() {
@Override
public void onBillingServiceDisconnected() {
Toast.makeText(MainActivity.this, "A", Toast.LENGTH_SHORT).show();
}
@Override
public void onBillingSetupFinished(@NonNull BillingResult billingResult) {
Toast.makeText(MainActivity.this, "B", Toast.LENGTH_SHORT).show();
}
});
}
@Override
public void onPurchasesUpdated(@NonNull BillingResult billingResult, @Nullable List<Purchase> list) {
Toast.makeText(this, "C", Toast.LENGTH_SHORT).show();
}
权限
<uses-permission android:name="android.permission.INTERNET"/>
我将 apk 上传到 Google Play 商店,他们接受了,但代码仍然无法正常工作。
您的代码运行良好。只是你无法得到吐司。 您可以做两件事:
将吐司替换为
Log.d("GoogleBillingService", "onBillingSetupFinished: billingResult: Yes/Your Result");
并查看 GoogleBillingService 的 LogCat 以获得结果。
toast 可能 运行 在不同的线程上运行,因此当您 运行 应用程序时您看不到它。
尝试使用
((Activity)context).runOnUiThread(new Runnable()
{
public void run()
{
Toast.makeText(context, toast, Toast.LENGTH_SHORT).show();
}
});
希望对您有所帮助!