BillingProcessor.purchase 后应用内结算未显示弹出消息
In App billing not showing popup message after BillingProcessor.purchase
我对 Android 中的应用内结算还是个新手。
我在本教程中尝试过完全相同的方法,但从未弹出窗口。
这是 link
这是我的代码
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.gradleAPP
中添加了这个
compile 'com.anjlab.android.iab.v3:library:1.0.+'
并且在 AndroidManifest 中,我也添加了结算权限
<uses-permission android:name="com.android.vending.BILLING" />
我真的被卡住了,即使我试着按照教程做的完全一样。能不能帮忙看看是哪里出了问题
License key AND product Id CANNOT 在最新版本的 google pay 中不再为 null。您必须使用您的产品 ID 和开发人员许可证密钥创建一个 alpha 版本,就像它们在控制台中的方式一样。
此外,您必须在发布 alpha 版本后等待大约 30 分钟 才能测试您的计费。
希望对您有所帮助!!
(确保您已添加 INTERNET 权限;将 build.gradle 中的“+”号替换为您将在更改日志中找到的版本)
我对 Android 中的应用内结算还是个新手。 我在本教程中尝试过完全相同的方法,但从未弹出窗口。 这是 link
这是我的代码
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.gradleAPP
中添加了这个compile 'com.anjlab.android.iab.v3:library:1.0.+'
并且在 AndroidManifest 中,我也添加了结算权限
<uses-permission android:name="com.android.vending.BILLING" />
我真的被卡住了,即使我试着按照教程做的完全一样。能不能帮忙看看是哪里出了问题
License key AND product Id CANNOT 在最新版本的 google pay 中不再为 null。您必须使用您的产品 ID 和开发人员许可证密钥创建一个 alpha 版本,就像它们在控制台中的方式一样。
此外,您必须在发布 alpha 版本后等待大约 30 分钟 才能测试您的计费。
希望对您有所帮助!!
(确保您已添加 INTERNET 权限;将 build.gradle 中的“+”号替换为您将在更改日志中找到的版本)