# getui-3rd-push-utils **Repository Path**: mirrors_GetuiLaboratory/getui-3rd-push-utils ## Basic Information - **Project Name**: getui-3rd-push-utils - **Description**: 个推第三方厂商推送SDK封装库 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-10-22 - **Last Updated**: 2026-03-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GT SDK Libraries for Java 该SDK是多厂商推送工具集,目前包装的功能有:icon上传。支持的厂商模块有OPPO、XM。 需要的jdk版本: - JDK 1.8 or higher. ## Adding dependency to your build 使用maven添加依赖如下 ```xml com.getui.push getui-3rd-push-utils 1.1.0.1 ``` ## Usage ### sdk初始化 在应用配置类中初始化执行一次如下代码 ```java // 配置文件的路径是运行程序所在的相对路径 GtSDKStarter.getInstance().loadPropertyFile("/src/main/resources/application.properties").init(); ``` ### 配置说明 请在上一步指定的配置文件内添加以下参数, ```properties ## 是否需要初始化厂商服务实例(主要包含各厂商服务类实例化、鉴权)。默认是true GtSDK.manufacturerInitSwitch=true ## 需要执行的厂商模块(不区分大小写),目前支持oppo和xm。不启用配置就默认执行所有厂商模块,启用配置单不填值就所有厂商模块都不执行。 GtSDK.moduleSet=oppo,xm ## 判断文件是否相同的方式,支持sha1和fileName。如不配置默认使用fileName。(为了避免文件重复上传,文件上传后sdk会将厂商返回的链接缓存起来,下次从缓存里取。 ## 这里就是决定使用什么方式来判断文件是否重复。缓存的时效使用各厂商icon最大存储时效,由于目前使用的本地缓存,应用重启也会导致缓存清空) GtSDK.judgeFile=sha1 ## 多厂商接口调用是否默认使用多线程 GtSDK.mThread=true ## 接口调用超时等待时间,单位毫秒,默认500毫秒 GtSDK.callTimeout=500 ## 以下是各厂商配置参数 GtSDK.XM.AppId= GtSDK.XM.AppKey= GtSDK.XM.AppSecret= GtSDK.XM.MasterSecret= GtSDK.OPPO.AppId= GtSDK.OPPO.AppKey= GtSDK.OPPO.AppSecret= GtSDK.OPPO.MasterSecret= ``` ### 服务调用 目前提供了四个服务: 1. 多厂商上传同一个icon文件。完成上两步后,只需要在需要上传icon的代码处编写以下代码即可得到各厂商上传结果。 ```java // 配置文件的路径是运行程序所在的相对路径 Map result = ManufacturerFactory.uploadIcon(new File("/xxx/xxx/xxx.png")); ``` 2. 多厂商上传不同的icon文件。代码如下: ```java // 配置文件的路径是运行程序所在的相对路径 ManufacturerFile file1 = new ManufacturerFile(ManufacturerConstants.ManufacturerName.OPPO, "/xxx/xxx/xxx/xxx1.png"); ManufacturerFile file2 = new ManufacturerFile(ManufacturerConstants.ManufacturerName.XM, "/xxx/xxx/xxx2.png"); ManufacturerFile[] manufacturerFiles = new ManufacturerFile[]{file1, file2}; Map result = ManufacturerFactory.uploadIcon(manufacturerFiles); ``` 3. 多厂商上传同一个图片文件。代码如下: ```java // 配置文件的路径是运行程序所在的相对路径 Map result = ManufacturerFactory.uploadPic(new File("/xxx/xxx/xxx.png")); ``` 4. 多厂商上传不同的图片文件。代码如下: ```java // 配置文件的路径是运行程序所在的相对路径 ManufacturerFile file1 = new ManufacturerFile(ManufacturerConstants.ManufacturerName.OPPO, "/xxx/xxx/xxx/xxx1.png"); ManufacturerFile file2 = new ManufacturerFile(ManufacturerConstants.ManufacturerName.XM, "/xxx/xxx/xxx2.png"); ManufacturerFile[] manufacturerFiles = new ManufacturerFile[]{file1, file2}; Map result = ManufacturerFactory.uploadPic(manufacturerFiles); ``` ### 服务结果解析 上一步可以看出上传接口返回的都是个Map,Map的key是厂商名(OPPO、XM),value是一个Result对象。Result包含以下三个属性: - code:结果码,0成功、1失败、2超时失败、3没有厂商实例(正常情况是配置没配这个厂商,但代码里却想使用这个厂商的服务)、4鉴权失败 - message:success、fail、timeout、has no manufacturer instance、auth fail - data:成功时,值为icon在各厂商的上传url结果(或者picId);失败时,值是失败原因。 ## 其他说明 由于该sdk本质只是各厂商api的包装,所以对于一些接口限制和返回处理,需要遵循各厂商的api文档。下面放出 [OPPO](https://open.oppomobile.com/wiki/doc#id=10693) 和[XM](https://dev.mi.com/console/doc/detail?pId=1163#_10_1) 的API在线文档供参考。