帮助文档

1     使用前准备

SDK开发包包括以下几个文件与目录:

SDK开发资源包: SDK目录中包含SDK的资源文件,请复制SDK目录中的所有目录与文件,并拷贝至各自的游戏工程中,如下:

1.1 拷贝资源

单机\sdk\java\assets”目录下的文件拷贝到游戏对应目录。

1.2 添加SDK提供的lib引用

单机\sdk\java\libs”目录下的文件拷贝到游戏对应目录下,并做如下关联。

1.3 添加SDK提供的Activity引用

将游戏AndroidManifest.xml文件的application中添加由易接提供如下代码,可参考单机\sdk\AndroidManifest.xml”

<activity

android:name="com.snowfish.cn.ganga.offline.helper.SFGameSplashActivity"

    android:theme="@android:style/Theme.Translucent"

    android:screenOrientation="sensor"

    android:label="@string/app_name" >

<intent-filter>

<actionandroid:name="android.intent.action.MAIN"/>

<categoryandroid:name="android.intent.category.LAUNCHER"/>

</intent-filter>

</activity>

<activity

    android:name="com.snowfish.a.a.s.PA"

    android:theme="@android:style/Theme.Translucent.NoTitleBar"

    android:configChanges="keyboardHidden|orientation"

    android:windowSoftInputMode="stateHidden">

</activity>

<service

    android:name="com.snowfish.a.a.s.ABGSvc"

    android:enabled="true">
    android:process="com.snowfish.a.a.bg">

<intent-filter>

<actionandroid:name="com.snowfish.a.a.s.ABGSvc"/>

<categoryandroid:name="android.intent.category.DEFAULT"/>

</intent-filter>

</service>

<meta-data

    android:name="com.snowfish.appid"

    android:value="KEY">

</meta-data>

<meta-data

    android:name="com.snowfish.customer"

    android:value="SNOWFISH">

</meta-data>

<meta-data

    android:name="com.snowfish.channel"

    android:value="SNOWFISH">

</meta-data>

<meta-data

    android:name="com.snowfish.sdk.version"

    android:value="1">

</meta-data>

标红处的KEY值是由易接CP后台分配格式如:{12345678-12345678}。

1.4 修改启动Activitiy

AndroidManifest.xml中的主入口Activity配置为com.snowfish.cn.ganga.offline.helper.SFGameSplashActivity

游戏原来的主入口Activity请添加到res/values/strings.xml中的sf_class_name字符串中,使得启动完成后即启动游戏

例如:

<string name="sf_class_name">com.yijie.cn.sdk.demo.MainActivity</string>

1.5 添加SDK需要的use-permision

将游戏的AndroidManifest.xml中添加use-permision如下,可参考单机\sdk\ AndroidManifest.xml”

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

<uses-permission android:name="android.permission.SEND_SMS"/>

<uses-permission android:name="android.permission.INTERNET"/>

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

<uses-permission android:name="android.permission.GET_TASKS" />

<uses-permission android:name="android.permission.WAKE_LOCK" />

<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

1.6 避免模糊,防止计费时发生异常

两种方式建议使用第二种方式:

1)      proguard-project.txt 文件中增加如下代码:
-keep class com.snowfish.**{*;}

2)      android\sdk\tools\proguard\proguard-android.txt文件中增加:
-keep class com.snowfish.**{*;}

1.7 修改 Application

1)      若无自定义Applicatiion,则修改AndroidManifest.xmlApplication如下:

<application android:name="com.snowfish.cn.ganga.offline.helper.SFOfflineApplication"/>

2)      若开发者自定义的Application。则自定义Application需要继承com.snowfish.cn.ganga.offline.helper.SFOfflineApplicationAndroidManifest.xml修改如下:

<application android:name="自定义Application"/>

 

2     游戏接口

2.1 初始化接口(必选接口)

如下方法在游戏主Activity中调用。

public static void onInit (Activity activity);

该方法用于需要在游戏主Activity中的onCreate中调用,只需调用一次,调用用例:

SFCommonSDKInterface.onInit(this);

2.2 退出接口(必选接口)

public static void onExit(Activity activity,SFGameExitListener sfGameExitListener)

该方法用于系统全局退出,调用用例:

SFCommonSDKInterface.onExit(this, new SFGameExitListener () {

    @Override

    public void onGameExit(boolean flag) {

        if (flag) {

            MainActivity.this.finish();

        }

    }

});

2.3 计费接口(必选接口)

public static void pay(Activity activity, String id,SFIPayResultListener payListener);

该接口用于用户触发计费进行付费行为的入口函数。合作伙伴可以在需要计费的地方调用此接口可以进行计费。

参数描述:

参数名称

类型

意义

注释

activity

Activity

PayActivity

付费页面

id

String

PaymentId

计费点索引,格式如“0”“1”“2”

payListener

SFIPayResultListener

Callback

计费结果的回调逻辑。 onSuccess:计费成功的回调处理,onFail:计费失败后的回调处理,onCanceled:用户不进行计费的回调处理。

 

调用用例:

SFCommonSDKInterface.pay(MainActivity.this, "0", new SFIPayResultListener() {

  @Override

  public void onCanceled(String arg0) {

  }

 

  @Override

  public void onFailed(String arg0) {

  }

 

  @Override

  public void onSuccess(String arg0) {

  }

});

2.4 是否需要打开游戏声音(必选接口)

public static boolean isMusicEnabled(Activity activity)

判断SDK是否需要打开游戏声音,目前只有移动基地需要此接口

游戏开发者需要根据该返回值,设定游戏背景音乐是否开启。

2.5 更多游戏接口

public static void viewMoreGames (Activity activity)

更多游戏接口

2.6 计费点开发流程

计费流程图

 

描述:用户触发计费后,对app计费更新状态进行判断,若更新完成,则直接进行计费步骤;

若未更新则进行等待,等到更新完成后则进行计费步骤。计费完成后用户可继续进行游戏。