本文档仅适用于2.0~3.0的gysdk 或者 3.0以后仍旧使用不带GyCallback入参的初始化接口。
3.0以后建议统一按照《集成指南》实现
启动 Android Studio, 打开您之前创建的 Android 项目工程
接入方需要提供 App 的证书指纹 MD5, SHA1 , SHA256 值、包名信息(用于鉴权)。
Android 应用获取包名 packagename , 根据开发工具不同,获取位置有所不同,以 Android Studio 为例说明如下:
Android 签名证书的 MD5 , SHA1 , SHA256 值使用 keytool 获取
使用 keytool 工具:
获取命令:keytool -list -v -keystore ***
注意:debug 或 release 版本 app 需要提供对应的证书签名 md5, sha1, sha256 值
在开发者中心提交 APP 包名等信息后即可获取 APPID 等参数。
注:为兼容 Android9.0,请在 AndroidManifest.xml 文件中的 application 节点下添加 android:usesCleartextTraffic="true"
在项目根目录的 build.gralde 中的allprojects
块中添加 maven 仓库地址 :
//Maven URL 地址
buildscript {
......
}
allprojects {
repositories {
jcenter()
maven {
url 'https://mvn.getui.com/nexus/content/repositories/releases'
}
}
}
在模块级 build.gradle 中的dependencies
块中添加个验 sdk
和gtc
依赖,如下:
apply plugin: 'com.android.application'
android {
......
}
dependencies {
implementation 'com.getui:gysdk:2.2.0.0'
implementation 'com.getui:elogin:1.3.0.0'
implementation 'com.getui:gtc:3.1.7.0'
}
gtc 为个推公共代码库,如果已经接入的个推其他产品内已经包含 gtc,则无需再次添加。
在 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>
除了在 manifestPlaceholders 配置 GT_INSTALL_CHANNEL 之外,还可以通过 GYManager.setChannel(String channel) 来设置。
/**
* 设置渠道。
*
* @param channel 渠道信息。
*/
public void setChannel(String channel)
参数:
返回:
说明:
###
API 类名:com.g.gysdk.GYManager
方法 | 功能说明 |
---|---|
init | 初始化 GY |
getVersion | 获取 GY 版本号 |
setDebug | 开发者日志输出,在 SDK 初始化失败的时候,开启日志可以协助定位问题 |
/**
* 初始化接口。
*
* @param context 上下文。
*/
public void init(Context context)
参数名称 | 是否必填 | 类型 | 描述 |
---|---|---|---|
context | 必选 | Context | context 上下文 |
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.
* 3.0以前的版本,请一定要在本回调中进行首次预登录eprelogin调用,否则成功率会很低
*
* @param context context.
* @param gyUid gyUid.
*/
@Override
public void onGyUidReceived(Context context, String gyUid) {
}
}
属性 | 类型 | 属性说明 |
---|---|---|
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, getPackageName()+".permission.GYRECEIVER", null);
// registerReceiver(gyReceiver, filter);
// 请确保在注册广播之后,再调用 init 初始化 SDK,防止不能正常接收广播信息。
GYManager.getInstance().init(this.getApplicationContext());
-dontwarn com.g.gysdk.**
-keep class com.g.gysdk.**{*;}
以上文档对您是否有帮助?