在应用内计费 (v3) 的文档中,它说:“成功购买后,用户的购买数据由 Google Play 的应用内计费服务在本地缓存。”
我现在想彻底测试我的应用程序的计费代码并希望清除该缓存。这很重要,因为如果没有数据在缓存中,收集数据可能需要更长的时间 - 或者根本无法访问。我想测试我的应用程序是否可以处理这些情况。
那么有没有办法清除该缓存?
在应用内计费 (v3) 的文档中,它说:“成功购买后,用户的购买数据由 Google Play 的应用内计费服务在本地缓存。”
我现在想彻底测试我的应用程序的计费代码并希望清除该缓存。这很重要,因为如果没有数据在缓存中,收集数据可能需要更长的时间 - 或者根本无法访问。我想测试我的应用程序是否可以处理这些情况。
那么有没有办法清除该缓存?
您可以使用 adb 执行此操作(也适用于非 root 用户):
adb shell pm clear com.android.vending
就这么简单!
这应该可以工作,尽管您可能需要再次在 Play Store 上进行身份验证:
重新启动您的设备。每次都对我有用!如果您在谷歌钱包中取消了订单,您还必须在那里等待它被取消。它应该说“取消:订单将不会被交付”。
那么有没有办法清除该缓存?
据我所知,没有。开发人员无法清除 Google Play 的 IAB 缓存。
您会发现这很有用:Testing In-app Billing,来自 Android 官方文档。
如果 Par Nils 回答不起作用 - 尝试删除应用程序并执行
adb shell am clear-debug-app
难道你不能从android开发工具包创建一个新的模拟android安装......然后在你登录之前将其保存为“快照”并创建所有计费缓存?然后,您可以启动该 VM 的新实例并运行您的代码,而无需计费缓存。
编辑:如果你不能用模拟器这样做,我建议你有一部植根和 rom'ed 的手机。使用 Rom Manager (Nandroid Backup) 拍摄完整的系统快照,然后测试您的应用程序。当您希望重置时,通过 Rom Manager 恢复您的备份,您将回到登录市场之前(并激活计费缓存)。老实说,您的手机重新启动比实际恢复数据需要更长的时间......所以它非常快(我一直这样做,因为我是一个狂热的 root/rom-er。