# Android泛舟在线SDK

# 产品概述

Android 泛舟在线SDK是一套简单易用的位置服务接口,您可以使用这套API为应用程序实现获取所在的场景、附近的人员相对距离功能。

# 功能介绍

泛舟在线SDK的核心能力就是帮助开发者快速、精准的获取附近的人员。开发者只需按照如下流程操作,即可获取用户与附近周边的人员相对距离。

public  UbiboatManager ubiboatManager = null;
 /** 初始化UbiboatManager类,通过该对象来使用泛舟服务。
  * ctx - 需要全局有效的context,建议通过getApplicationContext传入
  * appKey - 服务密钥,在泛舟平台注册应用申请,每个应用唯一。同一个应用下可以返回不同平台android、web、iOS的附近的用户
  * appUserId - 每个应用中用户的唯一id,返回附近的人也是返回用户的id。
 */
ubiboatManager = UbiboatManager.getInstance(getApplicationConext(), "appKey", "appUserId");

/** 注册监听器。
 * 泛舟服务响应数据通过监听器返回。通过判断返回类型来获取不同接口的结果。监听器回调函数不在UI线程
*/
ubiboatManager.registerUbiboatListener(new UbiboatListener() {
	@Override
	public void onUbiboatResp(BaseUbiboatResp baseUbiboatResp) {
		switch (baseUbiboatResp.type){
			case BaseUbiboatResp.RespType.NEAR://返回附近的人
            if(baseUbiboatResp.status==1){
                (NearResp) baseUbiboatResp;
            }
        	 break;
			case BaseUbiboatResp.RespType.DIS://返回与指定id的用户的距离
            if(baseUbiboatResp.status==1) {
                (DisResp) baseUbiboatResp;
            }
            break;
			case BaseUbiboatResp.RespType.STATUS://返回异常状态信息,详细参考主要实现
                 (StatusResp) baseUbiboatResp;
              break;
      }
   }
});
//启动泛舟服务.如该接口未调用,在调用服务接口时,会自动启动泛舟服务。但第一次的服务请求结果会延时返回。
ubiboatManager.start();
/** 获取周围指定范围内的信息,包含id、距离。
 * 在初始化泛舟服务后,如立即使用服务接口,此时服务可能还未绑定,SDK会等待绑定成功后再执行,结果会延时返回
 * dis - 指定范围,单位m
 * type- 类型
*/
 ubiboatManager.getNearPoi(dis,type)

# 服务结果获取

监听器返回说明

泛舟监听器UbiboatListener回调方法中返回baseUbiboatResp是基类,所有响应数据继承该类,通过该参数的type字段来区分具体的响应服务类型。

  • BaseUbiboatResp类说明
字段 类型 描述
status int 响应状态
msg String 响应消息
type int 响应类型 NEAR:附近的人 DIS:指定距离 STATUS:异常状态

附近的人接口调用返回NearResp示例:

{
	"type": 1,
	"status": 1,
	"msg": "success",
	"nearPerson": [{
		"appUserId": "aa",		
		"distance": 0.8060606060606061,
		"time": "2021-07-02 19:32:36"
	}]
}

  • nearPerson - 附近的人数组
  • appUserId -附近的人userId
  • distance -相对距离

查询指定用户id距离接口调用返回DisResp示例:

{
	"type": 0,
	"status": 1,
	"msg": "success",
	"appUserId": "bb",		
	"distance": 1.80,
	"time": "2021-07-02 19:32:36"
}
  • appUserId -指定的用户userId
  • distance -相对距离

异常返回StatusResp示例:

{"msg":"WIFI未打开!","status":12,"type":3}

# 服务优势

  • -无需地图: 泛舟在线服务在进行距离计算时是进行相对计算,不需要基于某个地图的坐标系。

  • -无需硬件投入: 服务不需要额外的基站网络等设备投入

  • -覆盖广: 在无基站、无gps信号如地铁等场景下也可使用

# 应用场景

社交: 为基于位置的社交应用提供精确距离的附近的人、个性化推荐等服务。

智能硬件: 可应用于防丢、室内地铁等无GPS信号场景下的定位。

O2O: 基于用户相对距离,优化送货体验。

# 账号与Key的申请

注册成为泛舟在线开发者需要分三步:

第一步,注册泛舟在线开发者;

第二步,去控制台创建应用;

第三步,获取key

查看获取Key指南