Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用OpenIab进行Amazon InApp测试_Android_In App Purchase_Amazon_Sandbox_Amazon Appstore - Fatal编程技术网

Android 使用OpenIab进行Amazon InApp测试

Android 使用OpenIab进行Amazon InApp测试,android,in-app-purchase,amazon,sandbox,amazon-appstore,Android,In App Purchase,Amazon,Sandbox,Amazon Appstore,我正在尝试为Android应用程序实现应用内购买。因此,为了支持各种应用商店(如三星、谷歌游戏、亚马逊等),我从 我已经成功地将OpenIab用于谷歌游戏商店 但是,对于Amazon,我无法测试InApp的购买情况。 我想使用AmazonSDKTester测试Amazon购买的产品。为此,我创建了amazon.sdktester.json,并放置在/sdcard/amazon.sdktester.json 现在,通常,我正在执行以下步骤 String base64EncodedPublicKey

我正在尝试为Android应用程序实现应用内购买。因此,为了支持各种应用商店(如三星、谷歌游戏、亚马逊等),我从

我已经成功地将
OpenIab
用于谷歌游戏商店

但是,对于
Amazon
,我无法测试InApp的购买情况。 我想使用AmazonSDKTester测试Amazon购买的产品。为此,我创建了
amazon.sdktester.json
,并放置在
/sdcard/amazon.sdktester.json

现在,通常,我正在执行以下步骤

String base64EncodedPublicKey = "xxxxxxxx";

Map<String, String> storeKeys = new HashMap<String, String>();
        storeKeys.put(OpenIabHelper.NAME_GOOGLE, base64EncodedPublicKey);
OpenIabHelper helper= new OpenIabHelper(this, storeKeys);
        helper.startSetup(new IabHelper.OnIabSetupFinishedListener() {

            @Override
            public void onIabSetupFinished(IabResult result) {
                // TODO Auto-generated method stub

                if (result.isSuccess()) {
                    System.out.println("Successfully Setup finished");
                }
                else {
                    System.out.println("Failed to setup IAB"+result.getMessage());
                }

            }
        });
String base64EncodedPublicKey=“xxxxxxxx”;
Map storeKeys=newhashmap();
storeKeys.put(OpenIabHelper.NAME_GOOGLE,base64EncodedPublicKey);
OpenIabHelper=新的OpenIabHelper(这是storeKeys);
helper.startSetup(新的IabHelper.OnIabSetupFinishedListener(){
@凌驾
已完成公共void ONIBS设置(IAB结果){
//TODO自动生成的方法存根
if(result.issucess()){
System.out.println(“成功安装完成”);
}
否则{
System.out.println(“设置IAB失败”+result.getMessage());
}
}
});
现在,
IabSetup
失败,即,
result.issucess()
返回
false

但是,如果我使用,那么
amazonsdk测试仪
就可以完美地启动了


因此,我的问题是,如何将Amazon SDK tester与
OpenIab
一起使用,即如何使用
OpenIab
来测试Amazon InApp购买,这是因为OpenIab必须选择合适的商店来安排购买。OpenIAB仅当从Amazon商店找到应用程序附带的特殊属性时,才会将购买路由到Amazon

要通过Amazon强制OpenIAB工作,请使用以下方法:

1) 如果您使用OpenIAB.jar不想处理源代码,请使用构造函数OpenIABHelper(上下文,选项),如下所示:

    Options opts = new Options();
    opts.storeKeys = new HashMap<String, String>();
    opts.availableStores = new ArrayList<Appstore>();
    opts.availableStores.add(new AmazonAppstore(context) {
        public boolean isBillingAvailable(String packageName) {
            return true;
        }
    });
    mHelper = new OpenIabHelper(context, opts);
Options opts=新选项();
opts.storeKeys=newhashmap();
opts.availableStores=新的ArrayList();
opts.availableStores.add(新AmazonAppstore(上下文){
公共布尔值isBillingAvailable(字符串packageName){
返回true;
}
});
mHelper=新的OpenIabHelper(上下文,选项);
此代码应仅用于测试目的。确保您不会将其发送到生产部门,因为OpenIAB将尝试仅将购买内容发送到亚马逊,而不管该应用程序是从何处安装的

2) 如果您喜欢使用OpenIAB源代码,而不只是在AmazonStore中打开几个标志:

public class AmazonAppstore extends DefaultAppstore {
    private static final boolean mDebugLog = false;
    private static final String TAG = AmazonAppstore.class.getSimpleName();

    private volatile Boolean sandboxMode = false; // <------- switch to false!!!
公共类AmazonAppstore扩展了DefaultAppstore{
私有静态最终布尔值mDebugLog=false;
私有静态最终字符串标记=AmazonAppstore.class.getSimpleName();
private volatile Boolean sandboxMode=false//