所有文档

          EasyDL定制AI训练平台

          Android_SDK

          简介

          本文介绍SDK的的功能使用,即下载包中的sdk module。

          SDK为货架拼接API的封装,无任何额外功能。如果有和API文档不符的地方,以API文档为准。

          支持Android Level 15以上编译和使用.

          测试

          获取鉴权

          1. 进入EasyDL零售版的百度云控制台应用列表页面,如下图所示:

          1.png

          1. 如果还未创建应用,请点击「创建应用」按钮进行创建。创建应用后,参考鉴权参考文档,使用API Key(AK)和Secret Key(SK)获取access_token
          {
          	"ak": "Mz0zhObvEZ6lnG1K3renXXXX", // API Key的值
          
          	"sk": "188fRHYvLPmlPrNCDpBnkhL3ydXXXXX", // Secret Key的值
          
          	"apiUrl": "https://aip.baidubce.com/rpc/2.0/ai_custom_retail/v1/detection/XXXX"  // 定制商品检测服务API
          }

          正常情况下,启动的app及其功能和扫描二维码一致

          demo的请求和结果会放在/sdcard/com.baidu.ai.easydl.montage中

          测试mini demo

          测试app通过后,可以修改app/src/main/AndroidManifest.xml 内的启动app,修改为 "com.baidu.ai.easydl.minidemo.MiniActivity"

          MiniActivity中有3个task,测试时需要填入 Appkey, AppSecret, ApiUrl信息

          • ApiTestAsyncTask ,测试简单流程。
          • QueryAsyncTask , 测试查询列表。
          • RequestTestAsyncTask,测试assets/request下的图片输入。这个目录可以从SD卡中/sdcard/com.baidu.ai.easydl.montage/X/request复制。

          调用流程

          第1步, 创建任务,上传图片 1)【创建任务:开始拼接整个流程】 2)【加货架图:上传图片】 3)【开始任务:启动货架拼接离线任务】

          第2步,不定时查询结果,一般10分钟后有结果参数 【查询结果:查询任务运行状态或者结果】

          其它可选操作: 【终止任务:终止正在进行或者等待的任务】 【任务列表: 查询所有状态的任务列表】

          SDK 调用

          根据调用流程, SDK有两种调用方式:

          • StitchApi, api的封装
          • StitchTask, StitchApi的封装,避免taskId的传递。一个task对应一个StitchTask

          返回参数以及其他信息详见文档货架拼接API调用方法

          StitchApi

          初始化

          /**
          * 初始化
          * @param appKey 网页上的应用的appkey
          * @param secretKey 网页上的应用的appSecret
          */
          public StitchApi(String appKey, String secretKey) {
             super(appKey, secretKey);
          }
          
          /**
          * 初始化
          * @param appKey 网页上的应用的appkey
          * @param secretKey 网页上的应用的appSecret
          * @param connection 自定义HTTP连接
          */
          public StitchApi(String appKey, String secretKey, ISdkConnection connection) {
             super(appKey, secretKey, connection);
          }

          创建任务

           public CreateStitchResponse create(CreateStitchRequest request);
          
          // CreateStitchRequest 及 CreateStitchResponse  参数同API文档

          同步上传图片

          public CommonStitchResponse upload(UploadImageRequest request);
          
          // UploadImageRequest 及 CreateStitchResponse  参数同API文档
          
          设置图片的话,以下2个方法21
          
          public void setImageFile(String imageFile)public void setImageInputStream(InputStream inputStream) 

          异步上传图片

              public void uploadAsync(UploadImageRequest request,
                                      IApiResponseListener<CommonStitchResponse> listener)
          
          // UploadImageRequest   参数同API文档
          
          
          // IApiResponseListener<CommonStitchResponse>  接口:
          onSdkResponse(CommonStitchResponse response, String userDefinedRequestId)
          // 其中userDefinedRequestId是在UploadImageRequest 里面设置的
          
          // 使用 clearAysncQueue()可以清空未开始的任务

          开始任务

          CommonStitchResponse start(CommonStitchRequest request)

          查询结果

           public QueryStitchReponse query(CommonStitchRequest request)

          任务列表

          public  ListStitchResponse list(ListStitchRequest request)

          StitchTask

          一个任务新建一个StitchTask 调用方式同 StitchApi, 参数中不必设置taskId

          AbstractApiRequest

          目前Request类的基类 。

          // 设置自定义请求Id, 调用异步接口的回调使用
           public void setUserDefinedRequestId(String userDefinedRequestId)
          
          // 设置是否添加debug日志
          public void setEnableDebug(boolean enableDebug)

          CommonStitchResponse 及 AbstractApiResponse

          // 获取任务状态
           public String getTaskStatus();
          
          // 获取logId
           public String getLogId();
          
          // 获取服务端返回的原始json
          public JSONObject getOriginalJson();
          
          // 获取请求
          public AbstractApiRequest getRequest();
          上一篇
          iOS_SDK
          下一篇
          API文档