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.xml的Application如下:
<application android:name="com.snowfish.cn.ganga.offline.helper.SFOfflineApplication"/>
2) 若开发者自定义的Application。则自定义Application需要继承com.snowfish.cn.ganga.offline.helper.SFOfflineApplication,AndroidManifest.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计费更新状态进行判断,若更新完成,则直接进行计费步骤;
若未更新则进行等待,等到更新完成后则进行计费步骤。计费完成后用户可继续进行游戏。