本文档面向 Android 开发者,描述的接入方式适合运营在 4399 平台、只需要防沉迷功能的游戏。
SDK和相关示例的下载地址可在游戏创建后,进入 「游戏管理-SDK服务」 页面获取。
注意
如果您是开发者,在为用户提供服务前请阅读 《4399通行证用户服务协议》与《隐私政策》,了解SDK对个人信息收集范围、处理目的以及权限使用情况。请您向用户提供服务时,告知相关信息并取得用户同意。
如果您是用户,请在使用我们的服务前阅读 《4399通行证用户服务协议》与《隐私政策》,了解SDK对个人信息收集范围、处理目的以及权限使用情况。充分理解后再开始使用我们的服务。
为接入4399平台的游戏提供防沉迷支持
SDK 优先提供在线aar
依赖方式,Demo 结构遵循 Android
Studio(as) 规范,但仍然保留了 jar+res
的依赖方式。
SDK 支持的编译配置 android:minSdkVersion >= 16。
首次接入 SDK,要在 4399 开放平台
注册应用,主要是提交APK、素材等信息。
完成后,开发者将得到 SDK
的基础参数:game key
或GameKey
,游戏在 4399
平台的运营标识(开发者后台-游戏信息页面显示为”游戏ID“)
根据游戏需要,以下三种方式可选其一
build.gradle
中引入以下内容即可{
repositories {
maven // 4399 SDK 开放仓库:正式
'https://mvn.4399doc.com/repository/maven-releases'
url }
{
maven // 4399 SDK 开放仓库:快照
'https://mvn.4399doc.com/repository/maven-snapshots'
url }
}
{
dependencies fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
implementation
// 运营 SDK:建议使用最新版本,可通过浏览仓库地址或向运营咨询版本
"cn.m4399.sdk:operate:3.12.1"
implementation
// volley 和 support 是 SDK 使用的外部依赖,若接入方已有,可忽略
'com.android.volley:volley:1.2.1'
implementation //noinspection GradleCompatible
"com.android.support:support-v4:28.0.0"
implementation }
注意:若使用7.0+
版本的 gradle 及 android build
插件,仓库地址应配置在settings.gradle
中
operate/libs/volley-v1.2.1.jar
operate/libs/support-v13-23.2.1.jar
Gradle 文件中注意添加本地依赖
{
dependencies fileTree(dir: 'libs', include: ['*.jar','*.aar'])
implementation }
若游戏不需要支持所有 abi
,可以按需选用。
aar
依赖方式,按以下方式配置需要的abi
;jar+res
依赖方式需要手动删除不需要的abi
目录
android {
defaultConfig {
ndk {
// 根据游戏需要选择
abiFilters "armeabi", "armeabi-v7a", "x86", "arm64-v8a"
}
}
}
// 初始化选项,传入游戏配置,更多说明见接入文档
= new OperateConfig.Builder(this)
OperateConfig config // 设置游戏运营 key,此参数需要在原创开放平台注册应用后得到
.setGameKey(GAME_KEY)
// 设置SDK页面方向,应与游戏方向一致,部分第三方页面需要在AndroidManifest中设置
.setOrientation(GAME_ORIENTATION)
// 设置游戏是否兼在高于Android 9.0版本系统容全面屏,true兼容,默认false
.compatNotch(GAME_COMPACT_NOTCH)
.build();
// 初始化SDK
.init(this, config, new OpeInitedListener() {
AdGame@Override
public void onInitFinished() {
// 验证通过,可以进入游戏
}
});
初始化的几点说明
android:configChanges
,否则系统强制方向变化时(一般发生是打开外部应用,如支付宝、微信)可能会发生异常<!-- 游戏 Activity 配置建议:
应该使用 android:configChanges="orientation|screenSize|keyboardHidden|screenLayout|navigation|smallestScreenSize|fontScale"
不应该使用 android:launchMode="singleTask" 启动模式,可以考虑 singleTop
-->
注意
android:configChanges
新增的配置项,这是为适配 Android
分屏模式而添加的
OperateConfig.setOrientation()
设置 SDK
页面方向,值是系统类android.content.pm.ActivityInfo
定义的常量方向参数 | 含义 |
---|---|
SCREEN_ORIENTATION_LANDSCAPE ,int , 0 |
横屏 |
SCREEN_ORIENTATION_PORTRAIT , int , 1 |
竖屏 |
SCREEN_ORIENTATION_SENSOR_LANDSCAPE ,int ,
6 |
横屏,可180度旋转 |
SCREEN_ORIENTATION_SENSOR_PORTRAIT ,int ,
7 |
竖屏 |
android:screenOrientation
,如下所示<!--
4399 SDK:SDK 中除了以'cn.m4399.'开头的 Activity 都是第三方页面,
假设游戏为横屏,需要锁定它们的方向为横屏,可以设置 android:screenOrientation,
此设置应与初始化接口中设置的值保持对应,且若编译有错误,可以进一步设置‘tools:replace’
-->
activity android:name="com.cmic.gen.sdk.view.GenLoginAuthActivity"
< android:configChanges="orientation|keyboardHidden|screenSize"
android:launchMode="singleTop"
android:screenOrientation="landscape"
android:theme="@style/AppTheme.NoActionBar"
tools:replace="android:theme, android:screenOrientation" />