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

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

    QuickSDK部署版

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

    国内发行工具

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

    海外发行工具

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

    QuickAD+ 广告追踪工具

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

    玩家维护系统

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

  • 开发者中心
    文档中心 下载中心 渠道列表 功能索引
  • 资讯动态
  • 商务合作
  • 关于我们
    公司介绍 人才招聘
  • 隐私政策
简体中文
简体中文 繁體中文 English
登录 注册
SDK聚合工具
  • 新手指南
  • 后台使用手册
  • SDK接入文档
    • 服务器接入文档
    • Java(Android)接入文档
    • Objective-C(iOS)接入文档
    • Unity3D接入文档
    • Unreal Engine(Android)接入文档
    • H5游戏接入文档(微端和网页)
    • QuickSDK开放平台接入文档
    • 隐私协议及权限说明
    • 登录、支付流程图
  • 母包自测用例
    • 母包自测用例 - Android
    • 母包自测用例 - iOS
  • 渠道配置说明
    • 五大渠道
    • 硬核渠道
    • 其他渠道
    • Quickgame(官方SDK)渠道
  • H5和工具使用手册
    • Android打包工具
    • iOS打包工具
    • 渠道插件使用说明
    • H5游戏上架Android或越狱渠道后台配置流程
    • H5游戏上架H5渠道后台配置流程
    • Android签名证书的创建方法
    • iOS证书和通用签名的创建方法
    • iOS如何创建推送证书以及生成pem证书
  • 关键指标说明
    • 运营数据术语定义及说明
    • 运营数据平台使用手册
    • 深度挖掘服务使用手册
  • FAQ
    • 接入问题
    • 打包问题
    • 上架测试
    • 出包错误

更新日期:2026-02-13Java(Android)接入文档

1.接入前项目检查(必接)

根据游戏接入后出现的问题,QuickSDK对游戏项目做以下几点要求:

· AndroidManifest.xml中android:targetSdkVersion="26" (关于一些应用市场对Android应用API(targetSdkVersion)最低要求的提示)

部分渠道targetVersion为28时9.0设备http请求失败
application节点下添加

android:usesCleartextTraffic="true" 


防止游戏与渠道sdk发生横竖屏切换出现问题

· U3D游戏项目下,AndroidManifest.xml中




Android:value值设置为true

· 为Activity添加横竖屏设置

根据游戏的横竖屏,将activity做横竖屏设置

android:screenOrientation="sensorLandscape"
android:screenOrientation="sensorPortrait"

或者

android:screenOrientation="landscape"
android:screenOrientation="portrait"

· AndroidManifest.xml中的Activity等组件路径为完整路径

· 游戏项目的类路径不要使用“com.quicksdk”,打渠道包时会删除该路径下的所有内容。

2.接入流程


2.1 添加资源(必接)

去下载中心下载QuickSDK资源,将files文件夹下的文件libs和res拷贝到项目对应的文件夹中。

2.2 添加权限(必接)

Androidmanifest.xml中添加权限(QuickSDK没有要求任何权限,游戏按自己的需要进行添加便可)





2.3 添加QuickSdkApplication

2.3.1  新建游戏的Application(必接)

新建游戏的Application,继承自QuickSdkApplication

public class GameApplication extends QuickSdkApplication {
   @Override
   public void onCreate() {
       super.onCreate();
   }
}

2.3.2  将Application添加到AndroidManifest.xml中(必接)



 


在AndroidManifest.xml中的Application节点,修改android:name属性,其值为游戏新建的Application的全路径



2.4 添加闪屏

2.4.1  新建游戏闪屏Activity(必接)

新建游戏闪屏Activity,继承自QuickSdkSplashActivity

public class SplashActivity extends QuickSdkSplashActivity {
   @Override
   public int getBackgroundColor() {
       return Color.WHITE;
   }
   @Override
   public void onSplashStop() {
       //闪屏结束后,跳转到游戏界面
       Intent intent = new Intent(this, MainActivity.class);
       startActivity(intent);
       this.finish();
   }
}

2.4.2  将闪屏Activity添加到AndroidManifest.xml中,并且设置为游戏启动Activity



	
	
                
        
	



说明:

android:name属性,其值为游戏自定义的闪屏Activity全路径

android:screenOrientation属性,其值根据游戏需求决定是横屏还是竖屏




2.5 生命周期处理(必接)


游戏Activity的生命周期,调用相应的方法

@Override    
protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       com.quicksdk.Sdk.getInstance().onCreate(this);    
}
@Override    
protected void onStart() {
       super.onStart();
       com.quicksdk.Sdk.getInstance().onStart(this);
}
@Override    
protected void onRestart() {
       super.onRestart();
       com.quicksdk.Sdk.getInstance().onRestart(this);
}
@Override  
protected void onPause() {
       super.onPause();
       com.quicksdk.Sdk.getInstance().onPause(this);
}
@Override    
protected void onResume() {
       super.onResume();
       com.quicksdk.Sdk.getInstance().onResume(this);
}
@Override    
protected void onStop() {
       super.onStop();
       com.quicksdk.Sdk.getInstance().onStop(this);
}
@Override    
protected void onDestroy() {
       super.onDestroy();
       com.quicksdk.Sdk.getInstance().onDestroy(this);
}
@Override    
protected void onNewIntent(Intent intent) {
       super.onNewIntent(intent);
       com.quicksdk.Sdk.getInstance().onNewIntent(intent);
}
@Override    
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
       super.onActivityResult(requestCode, resultCode, data);
       com.quicksdk.Sdk.getInstance().onActivityResult(this, requestCode, resultCode, data);
}

2.6 QuickSDK初始化设置

2.6.1  设置初始化通知(必接)

类名:QuickSDK

方法:public QuickSDK setInitNotifier(InitNotifier notifier)

功能:设置初始化结果回调通知,一般在游戏开始前,初始化成功后,进行游戏登陆等相关的处理。


案例:


QuickSDK.getInstance().setInitNotifier(new InitNotifier() {
   @Override
       public void onSuccess() {
               //初始化成功
       }
       @Override
       public void onFailed(String message, String trace) {
               //初始化失败
       } });

2.6.2  设置登录通知(必接)

类名:QuickSDK

方法:public QuickSDK setLoginNotifier(LoginNotifier notifier)

功能:设置用户登陆结果回调通知的相关处理。

案例:

QuickSDK.getInstance().setLoginNotifier(new LoginNotifier() {
   @Override
   public void onSuccess(UserInfo userInfo) {
       //登录成功,获取到用户信息userInfo
       //通过userInfo中的UID、token做服务器登录认证
   }
   @Override
   public void onCancel() {
       //登录取消
   }
   @Override
   public void onFailed(final String message, String trace) {
       //登录失败
   }
});

登录信息:

UserInfo

字段 类型 说明
UID
String
用户ID,SDK返回的唯一ID
username
String
用户登录名
token
String
用户验证token

接入要求:

1)启动游戏,在登录界面中获取到登录成功的通知,跳转到进入游戏的界面;

2)游戏以自动登录的方式调用登录时,获取到登录失败和登录取消的通知,应再次调用登录的功能;

3)不同渠道可能返回相同的UID,游戏应使用渠道ID+UID作为用户的唯一标识。渠道ID通过“public int getChannelType()”获取。

2.6.3  设置注销通知(必接)

类名:QuickSDK

方法:public QuickSDK setLogoutNotifier(LogoutNotifier notifier)

功能:设置用户注销结果回调通知等相关的处理。

案例:

QuickSDK.getInstance().setLogoutNotifier(new LogoutNotifier() {
   @Override
   public void onSuccess() {
       //注销成功            
   }
   @Override
   public void onFailed(String message, String trace) {
       //注销失败,不做处理
   }
});

接入要求: 获取到注销成功的通知,游戏应回到登录界面并重新调用登录方法。

2.6.4  设置切换账号通知(必接)

类名:QuickSDK

方法:public QuickSDK setSwitchAccountNotifier(SwitchAccountNotifier notifier)

功能: 一些渠道(如:百度 等)在悬浮框有切换账号的功能,此回调即切换成功后的回调。游戏应清除当前的游戏角色信息。在切换账号成功后回到选择服务器界面,用回调结果里面的新的UID 和Token 进入游戏。注意:在此回调内无需调用登录接口

案例:

QuickSDK.getInstance().setSwitchAccountNotifier(new SwitchAccountNotifier() {
@Override
public void onSuccess(UserInfo userInfo) { //切换账号成功的回调,返回新账号的userInfo

}
       
@Override
public void onCancel() {
//切换账号取消
}
@Override
public void onFailed(String message, String trace) {
//切换账号失败
}
})

切换账号成功信息:

UserInfo

字段
类型
说明
UID
String
用户ID,SDK返回的唯一ID
username
String
用户登录名
token
String
用户验证token

接入要求:

在游戏界面中,获取到切换账号成功的通知,游戏注销当前的游戏角色,使用新的用户信息,回到进入游戏的界面。(针对渠道SDK在游戏界面中通过悬浮框进行账号的切换)

2.6.5  设置定额支付通知(必接)

类名:QuickSDK

方法:public QuickSDK setPayNotifier(PayNotifier notifier)

功能:设置用户支付结果回调通知等相关的处理

案例:

QuickSDK.getInstance().setPayNotifier(new PayNotifier() {
   @Override
   public void onSuccess(String sdkOrderID, String cpOrderID,
       String extrasParams) {
           //支付成功
           //sdkOrderID:quick订单号 cpOrderID:游戏订单号
       }
   @Override
   public void onCancel(String cpOrderID) {
       //支付取消
   }
   @Override
   public void onFailed(String cpOrderID, String message, String trace) {
       //支付失败
   }
});

说明:游戏充值是否成功到账,只能以服务器的通知为准,而不是客户端的通知,因为部分渠道SDK自身有时不会发送正确的通知。

2.6.6  设置退出通知(必接)

类名:QuickSDK

方法:public  QuickSDK  setExitNotifier(ExitNotifier notifier)

功能:设置用户退出结果回调通知等相关的处理

案例:

QuickSDK.getInstance().setExitNotifier(new ExitNotifier() {
   @Override
   public void onSuccess() {
       //退出成功,游戏在此做自身的退出逻辑处理
   }
   @Override
   public void onFailed(String message, String trace) {
       //退出失败,不做处理
   }
});

接入要求:获取到退出成功的通知后,游戏做自身的退出逻辑处理。

2.7 渠道SDK接口调用

接入要求:SDK的接口需在UI主线程下调用

2.7.1   SDK初始化(必接)

类名:com.quicksdk.Sdk

方法:public void init(Activity activity, String productCode, String productKey)

功能:渠道SDK初始化

参数:activity  必填 当前Activity

targetVersion大于等于23时,需要在初始化之前申请权限(QuickSDK没有要求任何权限,游戏按自己的需要进行申请便可,如不用可以不做申请)如下:

案例1(当targetVersion 较大时  动态申请读写权限和读取手机状态等权限,具体权限 具体而定):

        try {
            //check权限
            if ((ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED)
                    || (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)) {
                //没有,申请权限  权限数组
                ActivityCompat.requestPermissions(MainActivity.this, new String[] { Manifest.permission.READ_PHONE_STATE ,Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUESTCODE);
            } else {
                // 有则执行初始化
                Sdk.getInstance().init(this, "Product_Code", "Product_Key");
            }
        } catch (Exception e) {
            //异常  继续申请
            ActivityCompat.requestPermissions(MainActivity.this, new String[] { Manifest.permission.READ_PHONE_STATE ,Manifest.permission.WRITE_EXTERNAL_STORAGE }, REQUESTCODE);
        }
    }


   @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        //如果requestCode不是游戏自己申请时传的,则不作处理
        if (requestCode != REQUESTCODE){
            return;
        }
        if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            //申请成功
            Sdk.getInstance().init(this,"Product_Code", "Product_Key");
        } else {
            //失败  这里逻辑以游戏为准 这里只是模拟申请失败 cp方可改为继续正常初始化调登录然后进游戏 或者继续申请权限 或者退出游戏 或者其他逻辑
            Sdk.getInstance().init(this,"Product_Code", "Product_Key");
        }
    }



targetVersion小于等于22时,无申请权限。如下:

案例2:


QuickSDK.getInstance().setInitNotifier(new InitNotifier() {
   @Override
       public void onSuccess() {
               //初始化成功
       }
       @Override
       public void onFailed(String message, String trace) {
               //初始化失败
       }
   });


productCode 必填 QuickSDK后台申请的productCode

productKey 必填 QuickSDK后台申请的productKey

案例:


com.quicksdk.Sdk.getInstance().init(activity, "后台申请的productCode", "后台申请的productKey");


接入要求:初始化接口,应在Activity中onCreate方法中调用。


2.7.2  登录账号(必接)

类名:com.quicksdk.User

方法:public void login(Activity activity)

功能:调用渠道SDK登录

参数:activity 必填 当前Activity

案例:

User.getInstance().login(activity);

接入要求:进入到登录界面,自动调用此接口,须保证初始化成功后再调用登录接口。

2.7.3  上传角色信息(必接)

类名:com.quicksdk.User

方法:public void setGameRoleInfo(Activity activity, GameRoleInfo roleInfo, boolean createRole)

功能:向渠道SDK上传角色信息

参数:activity 必填 当前Activity

roleInfo 必填 角