QuickSDK
  • 首页
  • 产品与服务
    聚合SDK工具

    聚合2000余家渠道的SDK出包工具,一次接入,批量出包,全渠道上架

    QuickSDK部署版

    本地化部署,数据独立存储,渠道资源共享公共版更新

    国内发行工具

    QuickGame SDK国内版助力手游开发商快速拥有自主发行的能力。

    海外发行工具

    QuickGame SDK海外版帮助发行商快速搭建海外自主发行平台。

    QuickAD+ 广告追踪工具

    检测广告效果,提供结算依据,优化投放策略为用户提供真实的广告监测数据

    玩家维护系统

    游戏客服服务、重度玩家跟踪、玩家情感分析、提升玩家忠诚度和参与度。

  • 开发者中心
    文档中心 下载中心 渠道列表 功能索引
  • 资讯动态
  • 商务合作
  • 关于我们
    公司介绍 人才招聘
  • 隐私政策
简体中文
简体中文 繁體中文 English
登录 注册
官方SDK系统-海外版
  • 新手指南
    • QuickGame自定义事件默认投递事件说明表
    • 官方SDK系统-海外版介绍
  • SDK接入文档
    • 海外版服务器接入文档
    • 海外版Android接入文档
    • 海外版Android UE接入文档
    • 海外版iOS接入文档
    • 海外版iOS UE接入文档
    • 海外版Unity 接入文档
    • 海外版Unity 2021添加assets及res说明
    • 海外版H5接入文档
    • 海外版PC游戏Web接入文档
    • 海外版PC游戏Unity接入文档
    • 海外版PC游戏UE接入文档
    • 海外版开放平台接入文档
  • 使用手册
    • 海外版产品手册
    • 海外后台配置流程
    • 海外第三方支付配置文档
    • Google后台配置文档(包含支付与登录)
    • Google谷歌支付帮助文档
    • Google谷歌支付错误码说明文档
    • Google谷歌登录常见问题
    • Facebook后台配置文档
    • H5SDK Google登录配置指南
    • H5SDK Facebook登陆配置指南
    • H5SDK Apple登录配置指南
  • 常见问题
    • GooglePlay后台怎么添加测试账号
    • Google谷歌包没有显示悬浮窗
    • 海外产品初始化失败怎么处理?
    • Facebook接入常见问题
    • QuickGameSDK海外版FAQ
  • 海外金流渠道
  • 第三方登录&数据SDK所需参数表

更新日期:2026-04-10海外版Android接入文档

注意:Facebook SDK 升级到v13.0.0版本,需要配置facebook_client_token参数


在AndroidManifest文件中添加:


在res/values/strings.xml中添加: 

replace your client token


facebook_client_token的值在facebook后台:设置(Settings) --> 高级(Advanced) --> 安全(Security) --> 客户端口令(Client token)中获取:






一、开发环境



1.1.开发工具:Android Studio


1.2.Android Gradle 插件版本最低为3.3.3


classpath 'com.android.tools.build:gradle:3.3.3'


因Android 11新特性需要,android gradle插件需要升级至对应版本的最新版本





1.3.gradle.properties配置AndroidX


android.useAndroidX=true
android.enableJetifier=true


1.4.minSdkVersion 版本最低为16,targetSdkVersion根据Google Play的要求设置




二、工程配置




2.1. 拷贝SDK文件、配置域名



将SDK资源libs目录所需资源拷贝到Android项目libs目录,

quickgame_hw_x.x.x.aar为必需资源,x.x.x为具体版本

将SDK资源assets/QHinfo 拷贝到Android项目assets目录

将SDK对应IP解析后的域名写入assets/QHinfo文件中(注意需使用文本编辑器打开写入,域名地址前面要加上http://)

2.2. 修改build.gradle配置,可参考demo


repositories {
    flatDir {
        dirs 'libs' // aar文件目录
    }
}
dependencies {
    //以下为必需依赖的库
    implementation(name: 'quickgame_hw_x.x.x', ext: 'aar') //x.x.x为具体版本
    implementation 'com.android.billingclient:billing:7.0.0'//google内购
    implementation 'androidx.appcompat:appcompat:1.6.0'
    implementation "org.jetbrains.kotlin:kotlin-stdlib:1.4.10"
    
    //以下为选接库,x.x.x为具体版本,以SDK资源里的对接文档为准
    implementation 'com.google.android.gms:play-services-auth:x.x.x' //谷歌登录
    implementation 'com.google.android.gms:play-services-ads-identifier:x.x.x' // adid获取
    implementation 'com.facebook.android:facebook-android-sdk:x.x.x' //Facebook
    implementation 'com.appsflyer:af-android-sdk:x.x.x' //appsflyer
    implementation 'com.adjust.sdk:adjust-android:x.x.x' //adjust
    implementation 'com.android.installreferrer:installreferrer:x.x.x' //appsflyer、adjust需要
    implementation 'com.twitter.sdk.android:twitter:x.x.x'//Twitter登录
    implementation (name: 'line_sdk_x.x.x',ext: 'aar')//Line登录
    implementation files('libs/libTapDB-x.x.x.aar') //tapdb
    implementation files('libs/TalkingData_GP_GameAnalytics_Vx.x.x.jar') //TalkingData
}




2.3. 修改AndroidManifest文件


在application节点下配置


谷歌登录配置(按需配置)


 <
meta-data
    android:name="google-signin-client_id"       
    android:value="替换为google后台申请的clientid"/>

注:Google后台有android client 和 web client 两种,这里使用的是web client id,需跟运营人员确认清楚



AppsFlyer配置(按需配置)


<
meta-data 
    android:name="DEV_KEY" 
    android:value="替换为在AppsFlyer后台申请的Dev_Key" />


Adjust配置(按需配置)

<
meta-data
    android:name="adjust.Token"
    android:value="替换成adjust_token"/>

<
meta-data
    android:name="adjust.Debug"
    android:value="1:沙盒;0:正式"/>


<
meta-data
    android:name="adj_login_token"
    android:value="替换成登录事件的token" />
<
meta-data
    android:name="adj_complete_registration_token"
    android:value="替换成注册事件的token" />
<
meta-data
    android:name="adj_purchase_token"
    android:value="替换成google内购事件的token" />


Facebook配置(按需配置)





TalkingData配置(按需配置)


游戏的Application继承com.quickgame.android.sdk.QuickSdkApplication

<
meta-data
    android:name="TD_AppID"
    android:value="替换成TD_appid"/>


TapDB配置(按需配置)

<
meta-data
    android:name="tapdb_appid"
    android:value="替换成tapdb_appid"/>
<
meta-data
    android:name="tapdb_channel"
    android:value="替换成app当前渠道名"/>


Twitter配置(按需配置)

<
meta-data
    android:name="TWITTER_KEY"
    android:value="替换成Twitter的API key"/>
<
meta-data
    android:name="TWITTER_SECRET"
    android:value="替换成Twitter的API secret key"/>

Line登录配置(按需配置)




三、接口调用


3.1. 获取SDK实例(必接)


接口没有说明调用类或调用实例时,默认使用该实例

QuickGameManager sdkInstance = QuickGameManager.getInstance();


3.2. 添加生命周期接口(必接)


在主Activity的生命周期调用SDK实例的同名方法

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  sdkInstance.onCreate(this);
}

@Override
protected void onStart() {
  super.onStart();
  sdkInstance.onStart(this);
}

@Override
protected void onResume() {
  super.onResume();
  sdkInstance.onResume(this);
}

@Override
protected void onPause() {
  super.onPause();
  sdkInstance.onPause(this);
}

@Override
protected void onStop() {
  super.onStop();
  sdkInstance.onStop(this);
}

@Override
protected void onDestroy() {
  super.onDestroy();
  sdkInstance.onDestroy(this);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
  sdkInstance.onActivityResult(requestCode,resultCode,data);
}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
  super.onRequestPermissionsResult(requestCode, permissions, grantResults);
  sdkInstance.onRequestPermissionsResult(requestCode,permissions,grantResults);
}


3.3. 初始化接口(必接)


调用方法:


public void init(Activity activity,String productCode,QuickGameManager.SDKCallback sdkCallback)


productCode  是在Quick后台创建的应用的ProductCode


sdkCallback  是SDK通知游戏的回调实例。包括初始化成功、登录完成、退出登录、google订阅类商品回调这四个事件。

示例:

sdkInstance.init(this, "quick后台创建产品的ProdectCode", new QuickGameManager.SDKCallback() {
  @Override
  public void onInitFinished(boolean isSuccess,String error){
    if (isSuccess) {
      //初始化成功 
    } else {
      Toast.makeText(GameActivity.this, "初始化失败", Toast.LENGTH_LONG).show();
    }
  }

  @Override
  public void onLoginFinished(QGUserData userInfo, QGUserHolder loginState) {
    //登录成功
    if (loginState.getStateCode() == QGUserHolder.LOGIN_SUCCESS) {
      String uid = userInfo.getUid(); //作为唯一标示
      String token = userInfo.getToken(); 
      //判断登录方式: 6:Facebook,8:Google,9:Naver,10:Twitter,11:Line,12:迁移码,14:VK
      String logintype = userInfo.getOpenType();
      boolean isGuest = userInfo.isGuest(); //判断是否为游客
    } else if (loginState.getStateCode() == QGUserHolder.LOGIN_CANCEL) {
      Toast.makeText(GameActivity.this, "登录取消", Toast.LENGTH_LONG).show();
    } else if (loginState.getStateCode() == QGUserHolder.LOGIN_FAILED) {
      Toast.makeText(GameActivity.this, "登录失败", Toast.LENGTH_LONG).show();
    }
  }

  @Override
  public void onLogout() {
    //注销账号成功,注销账号成功后,游戏应从游戏的界面退回到登录界面中
  }

  @Override
  public void onGooglePlaySub(String productId, String sdkOrder, boolean isAutoRenewing, boolean isAcknowledged) {
    //游戏内没有Google订阅类商品可忽略该回调
    Log.d("", "商品id=" + productId + "&&sdkOrder=" + sdkOrder + "&&是否自动续订=" + isAutoRenewing + "&&是否确认" + isAcknowledged);
  }
});


3.4. 登录接口(必接)


调用方法:


public void login(Activity activity)


示例:


sdkInstance.login(this);



显示/关闭悬浮窗接口


如需要显示悬浮窗可以在登录状态下调用,同时sdk后台要打开截图的配置


//显示悬浮窗
public void showFloatView(Activity activity)
//关闭悬浮窗 
public void closeFloatView(Activity activity)




3.5. 注销接口


调用方法:


public void logout(Activity activity)


示例:

sdkInstance.logout(this);



3.6. 支付接口(必接)


调用方法:


public void pay(Activity activity,QGOrderInfo orderInfo,QGRoleInfo roleInfo,QGPaymentCallback paymentCallback);


orderInfo 是订单信息


roleInfo 是游戏内该玩家的角色信息

paymentCallback 支付结果的通知回调,包括支付成功、支付失败、支付取消三种事件

注:  

使用第三方支付时,sdk不会通知paymentCallback回调

orderInfo.setGoodsId() 传入的商品id是Google Play后台配置商品id


QGOrderInfo 方法说明


方法
必填
说明
setProductOrderId
是
游戏生成的订单唯一标识
setGoodsId