鹰眼Android SDK支持上传、查询图像数据,可应用于车载监控设备、物流、外勤等需上传图像数据的场景:
1. 车载监控设备:如后视镜设备,定期上传行车影像
2. 物流:物流司机运输途中遇到拥堵、事故等异常情况时,需拍摄图片上报异常
3. 外勤:外勤人员通过在指定地点拍摄照片打卡
该功能包括三个接口:
1. 上传图片
2. 获取图片
3. 获取图片URL,支持加水印
同一个 service 中,不同的图片文件是用 object_key 来唯一标识的。 每个图片文件的object_key 由开发者在上传图片时指定,因此开发者需自行保证其唯一性,例如:使用 entityName 加当前的时间戳来生成object_key。
putObject()方法用于上传图像,该方法使用示例:
// 请求标识int tag = 5;// 轨迹服务IDlong serviceId = 0;// 图像文件的唯一标识。同一 service 下,不同的图像文件用objectKey来标识String objectKey = "track.jpg";// 对象类型BosObjectType objectType = BosObjectType.image;//设置图片读取路径,鹰眼 SDK 将从所设置的本地路径读取该图片文件String path = "/storage/emulated/0/LBSTrace/com.baidu.track/track.jpg";File file = new File(path);// 初始化监听器OnBosListener mBosListener = new OnBosListener() {// 上传对象(图片)回调@Overridepublic void onPutObjectCallback(BosPutObjectResponse response) {}// 获取对象(图片)回调@Overridepublic void onGetObjectCallback(BosGetObjectResponse response) {}// 生成签名对象(图片)URL@Overridepublic void onGeneratePresignedUrlCallback(BosGeneratePresignedUrlResponse response) {}};// 创建上传对象(图片)请求实例BosPutObjectRequest request = BosPutObjectRequest.buildFileRequest(tag, serviceId,objectKey, objectType, file);// 请求上传对象(图片)mTraceClient.putObject(request, mBosListener);
getObject()方法用于获取图像文件,支持通过objectKey查询图像文件,该方法使用示例:
// 请求标识int tag = 6;// 轨迹服务IDlong serviceId = 0;// 对象key(即文件名称包括后缀,如track.jpg、track.png)String objectKey = "track.jpg";// 对象类型BosObjectType objectType = BosObjectType.image;// 创建获取对象(图片)请求实例BosGetObjectRequest request = new BosGetObjectRequest(tag,serviceId, objectKey, objectType);// 初始化监听器OnBosListener mBosListener = new OnBosListener() {// 上传对象(图片)回调@Overridepublic void onPutObjectCallback(BosPutObjectResponse response) {}// 获取对象(图片)回调@Overridepublic void onGetObjectCallback(BosGetObjectResponse response) {}// 生成签名对象(图片)URL// 请求获取对象(图片)mTraceClient.getObject(request, mBosListener);
getObject()generatePresignedUrl()方法用于生成访问指定图片的 URL 链接,支持生成水印。
// 请求标识int tag = 7;// 轨迹服务IDlong serviceId = 0;// 对象key(即文件名称包括后缀,如track.jpg、track.png)String objectKey = "track.jpg";// 对象类型BosObjectType objectType = BosObjectType.image;// 创建请求实例BosGeneratePresignedUrlRequest request = new BosGeneratePresignedUrlRequest(tag, serviceId, objectKey, objectType);// 图片处理命令ImageProcessCommand imageProcessCommand = new ImageProcessCommand();imageProcessCommand.setAngle(180);request.setImageProcessCommand(imageProcessCommand);// 文字水印命令TextWatermarkCommand textWatermarkCommand = new TextWatermarkCommand();textWatermarkCommand.setText("百度鹰眼");textWatermarkCommand.setFontFamily(FontFamily.KaiTi);textWatermarkCommand.setAngle(45);textWatermarkCommand.setFontColor("0000FF");request.setTextWatermarkCommand(textWatermarkCommand);// 初始化监听器OnBosListener mBosListener = new OnBosListener() {// 上传对象(图片)回调@Overridepublic void onPutObjectCallback(BosPutObjectResponse response) {}// 获取对象(图片)回调@Overridepublic void onGetObjectCallback(BosGetObjectResponse response) {}// 生成签名对象(图片)URL@Overridepublic void onGeneratePresignedUrlCallback(BosGeneratePresignedUrlResponse response) {}};// 请求生成签名对象(图片)URLmTraceClient.generatePresignedUrl(request, mBosListener);
鹰眼 SDK 除提供图像存储服务外,在 track 的系统字段中新增了 object_name 字段,用于存储轨迹点对应的图像文件名。即支持在查询轨迹或实时位置时,查询轨迹点的图像文件(详见:轨迹点自定义属性数据上传)
上一篇
下一篇
本篇文章对您是否有帮助?