- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试在应用计费中实现。我按原样使用了 trivialdrivesample。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// load game data
loadData();
String base64EncodedPublicKey = "my key";
// Create the helper, passing it our context and the public key to verify signatures with
Log.d(TAG, "Creating IAB helper.");
mHelper = new IabHelper(this, base64EncodedPublicKey);
// enable debug logging (for a production application, you should set this to false).
mHelper.enableDebugLogging(true);
// Start setup. This is asynchronous and the specified listener
// will be called once setup completes.
Log.d(TAG, "Starting setup.");
mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
public void onIabSetupFinished(IabResult result) {
Log.d(TAG, "Setup finished.");
if (!result.isSuccess()) {
// Oh noes, there was a problem.
complain("Problem setting up in-app billing: " + result);
return;
}
// Hooray, IAB is fully set up. Now, let's get an inventory of stuff we own.
Log.d(TAG, "Setup successful. Querying inventory.");
// mHelper.queryInventoryAsync(mGotInventoryListener);
}
});
}
Button purchaseB = (Button)findViewById(R.id.purchase_button);
if(purchaseB != null)
purchaseB.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
onUpgradeAppButtonClicked(null);
}
});
它运行良好,我可以从我的测试帐户购买。
但问题是我必须注释代码行
//mHelper.queryInventoryAsync(mGotInventoryListener);所以我无法查询库存。在调试时我发现了那个变量
// Is setup done?
boolean mSetupDone = false;
在 IabHelper 类中为 false 并引发异常。说设置成功后的日志说 IAB 助手未设置。
08-02 16:02:42.453: D/PackList(10346): Creating IAB helper.
08-02 16:02:42.453: D/PackList(10346): Starting setup.
08-02 16:02:42.468: D/IabHelper(10346): Starting in-app billing setup.
08-02 16:02:42.515: D/PackList(10346): Creating IAB helper.
08-02 16:02:42.539: D/IabHelper(10346): Billing service connected.
08-02 16:02:42.546: D/IabHelper(10346): Checking for in-app billing 3 support.
08-02 16:02:42.562: D/IabHelper(10346): In-app billing version 3 supported for com.xx
08-02 16:02:42.570: D/IabHelper(10346): Subscriptions AVAILABLE.
08-02 16:02:42.570: D/PackList(10346): Setup finished.
08-02 16:02:42.570: D/PackList(10346): Setup successful. Querying inventory.
08-02 16:02:42.578: E/IabHelper(10346): In-app billing error: Illegal state for operation (queryInventory): IAB helper is not set up.
最佳答案
试试这个。
设置:
mIabHelper = new IabHelper(this, ProjectKonstants.APP_PUBLIC_KEY_GOOGLE_PLAY);
mIabHelper.startSetup(new IabHelper.OnIabSetupFinishedListener()
{
public void onIabSetupFinished(IabResult result)
{
if (result.isSuccess())
{
mIabHelper.queryInventoryAsync(mInitialInventoryListener);
}
}
});
mInitialInventoryListener = new IabHelper.QueryInventoryFinishedListener()
{
public void onQueryInventoryFinished(IabResult result, Inventory inventory)
{
if (result.isSuccess())
{
mBHasDonated = inventory.hasPurchase(ProjectKonstants.APPLICATION_SKU_FOR_DONATION);
}
else
{
mBHasDonated = false;
}
}
};
mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener()
{
public void onIabPurchaseFinished(IabResult result, Purchase purchase)
{
if (result.isSuccess())
{
if (purchase.getSku().equals(ProjectKonstants.APPLICATION_SKU_FOR_DONATION))
{
mBHasDonated = true;
return;
}
}
mBHasDonated = false;
}
};
点击升级按钮时:
AccountManager accountManager = (AccountManager) getSystemService(ACCOUNT_SERVICE);
Account[] accounts = accountManager.getAccounts();
String strIdentifier = "[" + accounts[0].name + "][" + android.os.Build.MODEL + "][" + android.os.Build.VERSION.RELEASE + "]";
try
{
mIabHelper.launchPurchaseFlow(this, ProjectKonstants.APPLICATION_SKU_FOR_DONATION, 10001, mPurchaseFinishedListener, strIdentifier);
}
catch (IllegalStateException e)
{
}
关于android - 在应用内结算 IAB 设置成功但 queryInventory 报告 IAB 助手未设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18015170/
有时我需要(为了让我的开发更快)在我的代码中对一些东西进行硬编码。这可能是凭据,或者可能只是一个允许我测试某些功能的 hack。由于很多原因,我从来不想将这段代码推送到主代码库甚至开发分支。一段时间以
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 2 年前。 Improve this qu
我经常发现自己从类中提取常见行为到只包含一组静态方法的帮助程序/实用程序类中。我经常想知道是否应该将这些类声明为抽象类,因为我真的想不出实例化这些类的正当理由? 将这样的类声明为抽象类的优点和缺点是什
如果我这样做: $obj = factory(Object::class)->make(); collect($obj); 我返回了一个类型的集合: Illuminate\Support\Collec
我有一个应用程序,我可以在其中列出 parent 和 child 。当我添加一个 child 时,我需要获得一个 parent 列表作为下拉列表显示。有没有类似 collection_select 的
我有渲染组件( source ),用于从 Controller 字段渲染组件/助手。它适用于 ember 1.9.1,但在更新到 ember 1.12.1 后,我发现 API 发生了变化。之后upda
我刚开始使用 Rails,还有很多东西需要学习,所以我可能会比平常更频繁地在 Stackoverflow 上询问初学者 Rails/Ruby 问题。 我只是想弄清楚 Helpers 在 Rails 中
我在 Web 上使用 VS Express 2012。我的项目是一个 MVC 4 项目。 我正在尝试创建一个助手来创建一个菜单项,该菜单项是带有标签的 png 图像。我几乎剪切并粘贴了这段代码: Ac
我正在尝试在我的 Vue 页面中映射我商店的状态变量: export default { data: () => ({ localData: []
我目前正在开发一个 Rails 插件,用于生成 iPhone 特定的 HTML 元标记。我尝试使用 ActionView::TestCase 进行单元测试,但不断收到相同的错误。请参阅下面的文件内容和
我正在努力解决一个与变量声明相关的非常基本的问题。我已经阅读了有关变量的所有内容,但我不知道我的问题是否与 1) 我如何声明变量或 2) 我如何设置变量的范围有关。 首先,我对 Meteor 中变量的
我想知道是否可以将参数传递给 Meteor Helper 并在 HTML 中插入返回对象的属性,而不仅仅是返回最终值。我有这样的东西: HTML: {{#each conversation}}
我正在尝试为我的 Ember 应用程序构建一个新的条件助手。值得一提的是,我正在使用使用 Handlebars 2.0 的 Ember 1.10.1,并且我无法升级它,如果能很好地解决这个版本的 Em
我最近从 Dreamweaver 迁移到 aptana,并尝试使 aptana 尽可能相似;) 已经做了很多更改,但我仍然找不到使代码字体变小的方法(在 Dreamweaver 中代码更清晰,因为字体
我有以下模板: {{#each helperOne "1" "2" }} Lorem upsom {{#each}} helper : template.tempName.h
我有这个简单的代码块,它位于我的一个模板上,但我想将其作为助手放置,以便我的所有 View 都可以访问它。 @hidden(field: Field) = { @defining(field)
使用正则表达式,我正在替换 **text in bold**至 text in bold在一个字符串中,然后显示 message使用 {{{message}}}在我的 EmberJS 模板上。问题是我
是否有任何非常有用和健壮的 C++ 网络库?和库来帮助他们更好地运行?诸如使用 << 时自动进行字节序转换之类的东西,阻止读取直到结构或 w/e 您的读取完全传输,有助于调试协议(protocol)的
模板 {{#each tags}} {{#isObject this}} Object {{else}}
我有返回 JSON 的函数: Template.mainmenu.menuitem = function() { var jsonObj = { items: [ { ur
我是一名优秀的程序员,十分优秀!