我还是Android内应用内结算的新手。 我在本教程中尝试了完全相同的方法,但从未弹出。 这是链接
这是我的代码
MainActivity
public class MainActivity extends AppCompatActivity implements BillingProcessor.IBillingHandler {
BillingProcessor bp;
Button purchase;
@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);
purchase = (Button) findViewById(R.id.purchase);
purchase.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
bp.purchase(MainActivity.this, "android.test.purchased");
}
});
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
bp.purchase(MainActivity.this, "android.test.purchased");
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onProductPurchased(@NonNull String productId, @Nullable TransactionDetails details) {
showToast("You Have Purchased The Product");
}
@Override
public void onPurchaseHistoryRestored() {
}
@Override
public void onBillingError(int errorCode, @Nullable Throwable error) {
showToast("An Error Has Occurred");
}
@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();
}
private void showToast(String message) {
Toast.makeText(this, message, Toast.LENGTH_LONG).show();
}
}
我已将其添加到 build.gradle APP
compile 'com.anjlab.android.iab.v3:library:1.0.+'
在 AndroidManifest 中,我也添加了结算权限
<uses-permission android:name="com.android.vending.BILLING" />
即使我尝试做与本教程完全相同的操作,我也真的很困惑。您能帮忙解决一下问题吗?
答案 0 :(得分:0)
许可证密钥和产品ID 不能不再为空。您必须使用产品ID和开发者许可证密钥创建一个Alpha版本,以其在控制台中的方式。
此外,您必须在发布Alpha版本以测试帐单后等待 30分钟。
希望有帮助!
(确保您已添加INTERNET权限;将build.gradle中的“ +”符号替换为将在更改日志中找到的版本)