我能够实现一个应用内计费处理器,并且它测试得很好,而我并不打算去进行新的 Activity 。
然而,在客户支付付费内容后,我希望有一个新的 Intent
自动运行,从而启动新 Activity (包含付费内容的 Activity )。
然而,当我这样做时, Intent 超越了计费处理器,并切换到付费
无需任何计费或付款的 Activity 。我了解如何使用按钮来启动新 Activity 。但是,另一个按钮将不起作用,因为这也会
是解决应用内计费的简单方法。
有什么建议可以绕过这个粘性 wicket 吗?非常感谢。是的,这是我的第一个 Android 应用程序。我相信你能看出来……
BillingProcessor bp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
bp = new BillingProcessor(this, "null", this);
Button button2 = (Button) findViewById(R.id.button2);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
bp.purchase(MainActivity.this, "android.test.purchased");
//THE PROBLEM IS WHAT FOLLOWS: It overtakes .bp
startActivity(new Intent(MainActivity.this, paidstuff.class));
}
});
}
@Override
public void onProductPurchased(@NonNull String productId, @Nullable TransactionDetails details) {
Toast.makeText(this, "You just bought something great!", Toast.LENGTH_SHORT).show();
}
@Override
public void onPurchaseHistoryRestored() {
}
@Override
public void onBillingError(int errorCode, @Nullable Throwable error) {
}
@Override
public void onBillingInitialized() {
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (!bp.handleActivityResult(requestCode, resultCode, data)) {
super.onActivityResult(requestCode, resultCode, data);
}
}
@Override
public void onDestroy() {
if (bp != null) {
bp.release();
}
super.onDestroy();
}
}
最佳答案
你不能直接放
startActivity(new Intent(MainActivity.this, paidstuff.class));
里面
@Override
public void onProductPurchased(@NonNull String productId, @Nullable TransactionDetails details) {
Toast.makeText(this, "You just bought something great!", Toast.LENGTH_SHORT).show();
}
关于java - Intent 劫持应用程序计费,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45804958/