本文接上一篇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版相关推荐

  1. 独立开发者接入防沉迷尽然如此简单?-TapTap 防沉迷模块iOS版

    准备事项: 1.下载TapTap SDK最新版本. 2.准备好开发工具. 3.注册TapTap 开发者. 4.在开发者后台,提开启防沉迷的工单(记住这个一定要提,不然会有未通过提示哦). TapTap ...

  2. Gatepay.io 独立开发者个人即时到账零费率收款平台 接入步骤

    作为独立开发者产品需要收款是非常麻烦的,注册公司维护成本太高,市面上各种收款工具要么手续费太高,要么到账很慢,体验很不好. 看到 「gatepay 个人收款」 这个收款工具,挺有意思的.原理是监控手机 ...

  3. 【教你赚钱】5分钟成为副业致富的独立开发者

    多年兼职独立开发者,Google Play付费应用月收入30k+. 超级干货分享,帮你赚到工资之外的睡后收入. 个人经历 笔者是某强二线互联网公司Android开发一枚,在国内互联网内卷大环境下还有稳 ...

  4. 从谷歌辞职后,作为独立开发者的第三年,我从年入 3 万做到了年入 40 万

    我辞掉在谷歌的工作,创办自己的软件公司已经 3 年了.这是我迄今为止收入最高的一年,年收入 6.3 万美元,比 2019 年增长了 7 倍. 今天是我辞掉在谷歌的工作,创建自己的软件业务的 3 周年纪 ...

  5. 一位83岁独立开发者教会我的道理

    60 岁开始自学计算机,81 岁开始自学 Swift,83 岁高龄成为全球年龄最大的独立开发者,仅用半年时间就成功开发并上线了一款 iOS 应用,这位名叫若宫雅子的 83 岁高龄开发者的故事告诉我们: ...

  6. 高级篇:独立开发者 5 分钟入门 ASO

    这是接上一篇初级篇:独立开发者 5 分钟入门 App 营销的后续,如果有没看上一篇文章的,建议先看上一篇,再回来继续看. "营销" 这个概念自始至终会贯穿我们的专栏,以后会展开说其 ...

  7. 独立开发者:新手做2D手游该用哪些工具?

     独立开发者:新手做2D手游该用哪些工具? width="22" height="16" src="http://hits.sinajs.cn/A ...

  8. 一位 83 岁独立开发者教会我的道理

    60 岁开始自学计算机,81 岁开始自学 Swift,83 岁高龄成为全球年龄最大的独立开发者,仅用半年时间就成功开发并上线了一款 iOS 应用,这位名叫若宫雅子的 83 岁高龄开发者的故事告诉我们: ...

  9. 程序员的职业选择:打工者、独立开发者、创业者

    当你励志成为一名程序员的时候,你是否有对自己的职业生涯进行规划,作为一名开发人员你的理想是什么,希望成为一名什么样的开发者,这些都是不可逃避的问题,本篇文章给大家简单介绍一下程序员的职业选择:打工者. ...

最新文章

  1. xgboost重要参数1
  2. 日记 [2008年03月26日]
  3. 接收对象数组_示例: Bit数组
  4. C++ 编译器多态与运行时多态
  5. 从 Dropdown 的 React 实现中学习到的
  6. 51nod 1766
  7. python调用zabbixapi接口_python调用zabbix api获取主机信息
  8. 最新 C++的iostream标准库介绍(1)
  9. Public key for mysql....rpm is not installed
  10. 学习cluster技术
  11. Python将csv格式转换为xlsx
  12. Yii 2.0 权威指南 (8) 配合数据库使用
  13. 计算机病毒学课本,计算机病毒及防治教案
  14. portainer的安装使用
  15. 【转载】冗余与热备的概念区别
  16. 打开Windows任务管理器的七种方法
  17. java关注微信公众号登录
  18. [hdu4416 Good Article Good sentence]后缀自动机SAM
  19. 不再贩卖「情怀」的锤子手机
  20. TIOBE2017年5月编程语言排名

热门文章

  1. 模拟浏览器操作程序(数据结构课设)
  2. Java实现验证码生成
  3. 运行单独的vue页面
  4. 【07】JavaScript:05-作用域、变量的作用域、作用域链、预解析、对象
  5. Lichee(二) 在sun4i_crane平台下的编译
  6. jpg转yuv420抠图后转为jpg
  7. 如何制作一个简单的机械臂
  8. 20200615 碎碎念
  9. Linux中的文件IO以及JDK中的NIO模型简介
  10. 北京宣武区一个居民区停电三个月