SDK 接入与初始化

SDK 接入与初始化

说明

本文档仅适用于个验2.0.0.0及以上版本。

准备工作

1. 打开项目工程

启动 Android Studio, 打开您之前创建的 Android 项目工程

png

2. 添加应用信息

接入方需要提供 App 的证书指纹 MD5, SHA1 , SHA256 值、包名信息(用于鉴权)。

2.1 包名

Android 应用获取包名 packagename , 根据开发工具不同,获取位置有所不同,以 Android Studio 为例说明如下:

png

2.2 签名证书 SHA256 值

Android 签名证书的 MD5 , SHA1 , SHA256 值使用 keytool 获取

使用 keytool 工具:

png

获取命令:keytool -list -v -keystore ***

注意:debug 或 release 版本 app 需要提供对应的证书签名 md5, sha1, sha256 值

2.3 在开发者中心添加个验应用

在开发者中心提交 APP 包名等信息后即可获取 APPID 等参数。

png

配置 SDK

注:为兼容 Android9.0,请在 AndroidManifest.xml 文件中的 application 节点下添加 android:usesCleartextTraffic="true"

maven 接入

(1)配置maven仓库地址

项目根目录的 build.gralde 中的allprojects块中添加 maven 仓库地址 http://mvn.gt.getui.com/nexus/content/repositories/releases 如下:

//Maven URL 地址
buildscript {
    ......
}

allprojects {
    repositories {
        jcenter()

        maven {
            url 'http://mvn.gt.getui.com/nexus/content/repositories/releases'
        }
    }
}

(2)配置依赖项

模块级 build.gradle 中的dependencies块中添加个验 sdkgtc依赖,如下:

apply plugin: 'com.android.application'
android {
    ......
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    //此处的 ${version} 对应您当前相应的 SDK 版本号
    implementation 'com.getui:gysdk:${version}'
    implementation 'com.getui:elogin:${version}'
    implementation 'com.getui:gtc:${version}'
}

gtc 为个推公共代码库,如果已经接入的个推其他产品内已经包含 gtc,则无需再次添加

aar 包接入

(1)添加 aar 包文件

将个验提供的 aar 包 放置到项目的 libs 目录下

(2)配置aar依赖

app/build.gradle 文件中的android块和dependencies块中添加相应的 aar 依赖,如下

apply plugin: 'com.android.application'
android {
    ......

  repositories {
     flatDir {
       dirs 'libs'
     }
    }

  ......
}


dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    // 添加个验 aar 依赖,name 与 aar 包的名字同步,此处的 ${version} 对应您当前相应的 SDK 版本号
    implementation(name: 'gysdk-${version}', ext: 'aar')  
    implementation(name: 'gtc-${version}', ext: 'aar')
    implementation(name: 'elogin-${version}', ext: 'aar')
}

gtc 为个推公共代码库,如果已经接入的个推其他产品内已经包含 gtc,则无需再次引入

配置 APPID和渠道

app/build.gradle 文件中的 android.defaultConfig 下添加 manifestPlaceholders

defaultConfig {
    applicationId "你的应用包名"
     ....

    manifestPlaceholders = [
                  //从 2.0.2.3 版本开始,APPID 占位符从 GY_APP_ID 切换为 GETUI_APPID 
                  //后续所有产品的 APPID 均统一配置为 GETUI_APPID 占位符
            GETUI_APPID       : "你的  GETUI_APPID",

                  //渠道若为纯数字则不能超过 int 表示的范围。 
            GT_INSTALL_CHANNEL      : "你的 GT_INSTALL_CHANNEL"
    ]
}

注意: 对于同时集成个推多个产品SDK,且SDK之间的APPID值不一致的用户,可以任选一个SDK的APPID配置到GETUI_APPID占位符中,其余SDK在AndroidManifest文件中务必添加对应的标签来补充APPID,参考以下配置:

<application>

  ....
  <!-- 补充个推SDK的appid -->
  <meta-data
        android:name="PUSH_APPID"
    android:value="个推SDK的appid" />

  <!-- 补充个验SDK的appid -->
  <meta-data
        android:name="GY_APP_ID"
    android:value="个验SDK的appid" />

  <!-- 补充个数SDK的appid -->
  <meta-data
        android:name="GS_APPID"
    android:value="个数SDK的appid" />

  <!-- 补充个像SDK的appid -->
  <meta-data
        android:name="GI_APPID"
    android:value="个像SDK的appid" />

  ....
</application> 


设置渠道的接口:GYManager.setChannel(String channel)

除了在 manifestPlaceholders 配置 GT_INSTALL_CHANNEL 之外,还可以通过 GYManager.setChannel(String channel) 来设置。

/**
* 设置渠道。
*
* @param channel 渠道信息。
*/
 public void setChannel(String channel)

参数:

  • channel: 渠道信息

返回:

说明:

  • 设置渠道信息
  • 该方法需要在 GYManager 初始化之前调用,防止不能正确获取渠道信息。
    该方法设置的渠道优先级高于在 manifestPlaceholders 中设置的渠道信息,换句话说,如果 manifestPlaceholders
    和该方法中都设置渠道信息,以该方法设置的渠道信息为准。

###

SDK 初始化与配置

接口列表

API 类名:com.g.gysdk.GYManager

方法 功能说明
init 初始化 GY
getVersion 获取 GY 版本号
setDebug 开发者日志输出,在 SDK 初始化失败的时候,开启日志可以协助定位问题

初始化接口:init 【必须调用】

接口说明

/**
 * 初始化接口。
 *
 * @param context 上下文。
 */
public void init(Context context)

参数

参数名称 是否必填 类型 描述
context 必选 Context context 上下文

创建 Receiver 接收结果回调

  • 在项目源码中添加一个继承自 com.g.gysdk.GyMessageReceiver 的类,用于接受 SDK 初始化。请参考以下代码实现。
public class GYReceiver extends GyMessageReceiver {
 private static final String TAG = "GYReceiver";

    /**
     * sdk 初始化结果
     *
     * @param context context.
     * @param result true : 初始化成功。false : 初始化失败。
     */
    @Override
    public void onInit(Context context, boolean result) {
    }

    /**
     * 错误返回。
     *
     * @param context context.
     * @param response .
     */
    @Override
    public void onError(Context context, GYResponse response) {
    }

    /**
    * 返回 gyUid.
    * 在每次初始化 SDK 的时候,会通过该接口返回 gyUid.
    *
    * @param context context.
    * @param gyUid gyUid.
    */
    @Override
    public void onGyUidReceived(Context context, String gyUid) {
    }
}

  • 类 GYResponse 属性详细说明:
属性 类型 属性说明
success boolean 是否成功
code int 状态码
msg String 状态描述信息
gyuid String 个验用户唯一标识
reqId String 调用验证接口和短信验证接口时返回的请求唯一 id,错误不返回
validate String 二次校验凭证

注册广播监听

BROADCAST ACTION : com.getui.gy.action. + APPID

动态广播注册

// 动态注册数据接收广播
GYReceiver gyReceiver = new GYReceiver();
IntentFilter filter = new IntentFilter("com.getui.gy.action." + "你的 appid");
registerReceiver(gyReceiver, filter);

Application 中初始化 SDK

// 请确保在注册广播之后,再调用 init 初始化 SDK,防止不能正常接收广播信息。
GYManager.getInstance().init(this.getApplicationContext());

混淆配置

-dontwarn com.g.gysdk.**
-keep class com.g.gysdk.**{*;}

文档中心搜索