独立开发者接入防沉迷尽然如此简单?-TapTap 防沉迷模块Android版
本文接上一篇iOS版独立开发者接入防沉迷尽然如此简单?-TapTap 防沉迷模块iOS版_q553401387的专栏-CSDN博客准备事项见上方链接哦!
首先我们先初始化TapTap SDK。
详细可以见TapTap 开发文档。
首先初始化防沉迷,这里基本就照搬文档上的即可。
接入准备:
- 将
AntiAddiction_1.0.1.aar
拷贝到游戏目录下的src/main/libs
目录中 - 将
AntiAddictionUI_1.0.1.aar
拷贝到游戏目录下的src/main/libs
目录中 - 将
gson-2.8.6.jar
拷贝到游戏目录下的src/main/libs
目录中
implementation 'com.google.code.gson:gson:2.8.9'
implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs/taptap')
这里我是把相关taptap 的sdk 都放在taptap 的文件夹里面了。gson我没有用taptap 提供的那个。
先初始化SDK:
public void initSdk(String appId) {m_gameIdentifier = appId;DGLog.d("TapTap-AntiAddiction", "initSdk appId:" + appId);AntiAddictionFunctionConfig config = new AntiAddictionFunctionConfig.Builder().enablePaymentLimit(true) // 是否启用消费限制功能.enableOnLineTimeLimit(true) // 是否启用时长限制功能.build();Activity activity = DGSdk.getInstance().getView();AntiAddictionUIKit.init(activity, m_gameIdentifier, config, m_AntiAddictionUICallback);}private final AntiAddictionUICallback m_AntiAddictionUICallback = new AntiAddictionUICallback() {@Overridepublic void onCallback(int code, Map<String, Object> extras) {// 根据 code 不同提示玩家不同信息,详见下面的说明if (code == Constants.ANTI_ADDICTION_CALLBACK_CODE.LOGIN_SUCCESS){// 开始计时enterGame();DGLog.d("TapTap-AntiAddiction", "玩家登录后判断当前玩家可以进行游戏");if(extras != null) {DGLog.d("TapTap-AntiAddiction", extras.toString());String restrict_type = extras.get("restrict_type").toString();if(restrict_type == "0") {DGPlatform.callSdkExternalInterface(SdkEvent.SDK_LOGIN_SUCCESS, "");}else {if(checkAddiction()) {enterGame();DGPlatform.callSdkExternalInterface(SdkEvent.SDK_LOGIN_SUCCESS, "");}}}else {DGLog.d("TapTap-AntiAddiction", "SDK_LOGIN_SUCCESS");DGPlatform.callSdkExternalInterface(SdkEvent.SDK_LOGIN_SUCCESS, "");}}else if(code == Constants.ANTI_ADDICTION_CALLBACK_CODE.NIGHT_STRICT) {DGLog.d("TapTap-AntiAddiction", "未成年玩家当前无法进行游戏");}else if(code == Constants.ANTI_ADDICTION_CALLBACK_CODE.OPEN_ALERT_TIP) {DGLog.d("TapTap-AntiAddiction", "未成年允许游戏弹窗");}else if(code == Constants.ANTI_ADDICTION_CALLBACK_CODE.LOGOUT) {DGLog.d("TapTap-AntiAddiction", "退出账号");}else if(code == Constants.ANTI_ADDICTION_CALLBACK_CODE.REAL_NAME_STOP) {DGLog.d("TapTap-AntiAddiction", "实名过程中点击了关闭实名窗");}}};
代码示例中的 gameIdentifier
,是游戏的 Client ID
,可以在控制台查看(开发者中心 > 你的游戏 > 游戏服务 > 应用配置)。
同样写一个startAddiction 方法,在用户登录成功后调用,代码如下:
//启动防沉迷public void startAddiction(boolean isTapLogin, String userId) {Activity activity = DGSdk.getInstance().getView();activity.runOnUiThread(new Runnable() {@Overridepublic void run() {if(isTapLogin) {Profile profile = TapLoginHelper.getCurrentProfile();String userIdentifier = profile.getUnionid();AccessToken accessToken = TapLoginHelper.getCurrentAccessToken();String tapTapAccessToken = accessToken.toJsonString();DGLog.d("TapTap-AntiAddiction", "startAddiction taptap userIdentifier:" + userIdentifier + " tapTapAccessToken:" + tapTapAccessToken);AntiAddictionUIKit.startup(activity, true, userIdentifier, tapTapAccessToken);}else {String userIdentifier = userId;DGLog.d("TapTap-AntiAddiction", "startAddiction userIdentifier:" + userIdentifier);AntiAddictionUIKit.startup(activity, false, userIdentifier, "");}}});}
如果是taptap 登录直接调用taptap 登录后的数据即可,反之可以用用户的唯一标识符来代替userIdentifier。
一般独立游戏用到的方法如下:
//获取年龄分级public int getAgeLimite() {int ageRange = AntiAddictionKit.currentUserAgeLimit();return ageRange;}//获取剩余时间public int getRemainTime() {int remainTime = AntiAddictionKit.currentUserRemainingTime();return remainTime;}//进入游戏public void enterGame() {AntiAddictionUIKit.enterGame();}//离开游戏public void leaveGame() {AntiAddictionUIKit.logout();AntiAddictionUIKit.leaveGame();}
其他的就看小伙伴自由发挥啦!
整理不易,关注收藏不迷路哦~
独立开发者接入防沉迷尽然如此简单?-TapTap 防沉迷模块Android版相关推荐
- 独立开发者接入防沉迷尽然如此简单?-TapTap 防沉迷模块iOS版
准备事项: 1.下载TapTap SDK最新版本. 2.准备好开发工具. 3.注册TapTap 开发者. 4.在开发者后台,提开启防沉迷的工单(记住这个一定要提,不然会有未通过提示哦). TapTap ...
- Gatepay.io 独立开发者个人即时到账零费率收款平台 接入步骤
作为独立开发者产品需要收款是非常麻烦的,注册公司维护成本太高,市面上各种收款工具要么手续费太高,要么到账很慢,体验很不好. 看到 「gatepay 个人收款」 这个收款工具,挺有意思的.原理是监控手机 ...
- 【教你赚钱】5分钟成为副业致富的独立开发者
多年兼职独立开发者,Google Play付费应用月收入30k+. 超级干货分享,帮你赚到工资之外的睡后收入. 个人经历 笔者是某强二线互联网公司Android开发一枚,在国内互联网内卷大环境下还有稳 ...
- 从谷歌辞职后,作为独立开发者的第三年,我从年入 3 万做到了年入 40 万
我辞掉在谷歌的工作,创办自己的软件公司已经 3 年了.这是我迄今为止收入最高的一年,年收入 6.3 万美元,比 2019 年增长了 7 倍. 今天是我辞掉在谷歌的工作,创建自己的软件业务的 3 周年纪 ...
- 一位83岁独立开发者教会我的道理
60 岁开始自学计算机,81 岁开始自学 Swift,83 岁高龄成为全球年龄最大的独立开发者,仅用半年时间就成功开发并上线了一款 iOS 应用,这位名叫若宫雅子的 83 岁高龄开发者的故事告诉我们: ...
- 高级篇:独立开发者 5 分钟入门 ASO
这是接上一篇初级篇:独立开发者 5 分钟入门 App 营销的后续,如果有没看上一篇文章的,建议先看上一篇,再回来继续看. "营销" 这个概念自始至终会贯穿我们的专栏,以后会展开说其 ...
- 独立开发者:新手做2D手游该用哪些工具?
独立开发者:新手做2D手游该用哪些工具? width="22" height="16" src="http://hits.sinajs.cn/A ...
- 一位 83 岁独立开发者教会我的道理
60 岁开始自学计算机,81 岁开始自学 Swift,83 岁高龄成为全球年龄最大的独立开发者,仅用半年时间就成功开发并上线了一款 iOS 应用,这位名叫若宫雅子的 83 岁高龄开发者的故事告诉我们: ...
- 程序员的职业选择:打工者、独立开发者、创业者
当你励志成为一名程序员的时候,你是否有对自己的职业生涯进行规划,作为一名开发人员你的理想是什么,希望成为一名什么样的开发者,这些都是不可逃避的问题,本篇文章给大家简单介绍一下程序员的职业选择:打工者. ...
最新文章
- xgboost重要参数1
- 日记 [2008年03月26日]
- 接收对象数组_示例: Bit数组
- C++ 编译器多态与运行时多态
- 从 Dropdown 的 React 实现中学习到的
- 51nod 1766
- python调用zabbixapi接口_python调用zabbix api获取主机信息
- 最新 C++的iostream标准库介绍(1)
- Public key for mysql....rpm is not installed
- 学习cluster技术
- Python将csv格式转换为xlsx
- Yii 2.0 权威指南 (8) 配合数据库使用
- 计算机病毒学课本,计算机病毒及防治教案
- portainer的安装使用
- 【转载】冗余与热备的概念区别
- 打开Windows任务管理器的七种方法
- java关注微信公众号登录
- [hdu4416 Good Article Good sentence]后缀自动机SAM
- 不再贩卖「情怀」的锤子手机
- TIOBE2017年5月编程语言排名