SDK接入与初始化

SDK接入与初始化

准备工作

1. 打开项目工程

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

png

2. 添加应用信息

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

2.1 包名

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

png

2.2 签名证书 MD5值

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,请务必在application节点下添加android:usesCleartextTraffic="true"

maven接入方式

(1)添加 maven url地址

png

//Maven URL地址
maven {
    url "http://mvn.gt.igexin.com/nexus/content/repositories/releases/"
}

添加 compile 依赖

png

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.getui:gysdk:1.4.2.0'
    compile 'com.getui:gtc:2.1.0'
}

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

配置 APPID

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

注:Maven 方式若已集成的个推 SDK 的 APPID 开通个验功能,GY_APP_ID 的值配置成个推 SDK 的 APPID 即可,GY_CHANNEL 仍需配置。


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

        manifestPlaceholders = [
                GY_APP_ID       : "你的 GY_APP_ID",
                GY_CHANNEL      : "你的 GY_CHANNEL"
        ]
    }

渠道若为纯数字则不能超过int表示的范围。
除了在manifestPlaceholders配置GY_CHANNEL之外,还可以通过GYManager.setChannel(String channel)来设置。

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

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

参数:

  • channel: 渠道信息

返回:

说明:

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

aar 包接入方式

(1)添加 aar包文件

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

(2)配置 build.gradle

png

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

注:aar包方式若已集成的个推SDK的 APPID 开通个验功能,可只配置个推的 GETUI_APP_ID,无需再次配置个验 GY_APP_ID。


    defaultConfig {
         ....
        manifestPlaceholders = [
                // 修改成你的 appid
                GY_APP_ID       : "你的 GY_APP_ID",
                GY_CHANNEL      : "你的 GY_CHANNEL"
        ]
    }

    repositories {
    flatDir {
        dirs 'libs'
    }
   }

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        // 添加个验 aar 依赖,name与aar包的名字同步
        compile(name: 'gysdk-1.4.2.0', ext: 'aar')  
        compile(name: 'gtc-2.1.0', ext: 'aar')
    }

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

SDK初始化与配置

接口列表

API 类名: com.getui.gysdk.GYManager

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

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

接口说明

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

参数

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

创建 Receiver 接收结果回调

  • 在项目源码中添加一个继承自 com.getui.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());

调用接口

GYManager.getInstance().verify(pnMD5, GYManager.VerifyType.CLOUDSMS,"短信模板 id",callback);

混淆配置

-dontwarn com.getui.**
-keep class com.getui.**{*;}

文档中心搜索