图片上传
Android
https://mapopen-website-wiki.cdn.bcebos.com/demos/andDemos/yingyan/图片服务.mp4
1590746640|//mapopen-website-wiki.bj.bcebos.com/demos/andDemos/yingyan/android-preview.png
扫码体验
使用产品
图片服务|/index.php?title=android-yingyan/guide/object
下载源码
//mapopen-website-wiki.bj.bcebos.com/demos/andDemos/yingyan/BaiduTrace_AndroidSDK_v3_1_8_Sample_demo.zip
核心接口
类
接口
描述
LBSTraceClient
putObject(BosPutObjectRequest request, OnBosListener listener)
上传对象
LBSTraceClient
getObject(BosGetObjectRequest request, OnBosListener listener)
获取对象
LBSTraceClient
generatePresignedUrl(BosGeneratePresignedUrlRequest request, OnBosListener listener)
获取对象的URL
BosPutObjectRequest
buildFileRequest(int tag, long serviceId, String objectKey, BosObjectType objectType, File file)
构造上传文件类型的请求实例
重点关注
1)、 注:鹰眼 Android SDK v3.0以上版本支持随轨迹上传图像等对象数据,若需使用此功能,该参数需设为 true,且需导入bos-android-sdk-1.0.2.jar。
// 是否需要对象存储服务,默认为:false,关闭对象存储服务。
boolean isNeedObjectStorage = true;
// 初始化轨迹服务
Trace mTrace = new Trace(serviceId, entityName, isNeedObjectStorage);
// 是否需要对象存储服务,默认为:false,关闭对象存储服务。
boolean isNeedObjectStorage = true;
// 初始化轨迹服务
Trace mTrace = new Trace(serviceId, entityName, isNeedObjectStorage);
核心代码
1.开启对象储存服务
JAVA
// 是否需要对象存储服务,默认为:false,关闭对象存储服务。 boolean isNeedObjectStorage = true; // 初始化轨迹服务 Trace mTrace = new Trace(serviceId, entityName, isNeedObjectStorage); mClient.startTrace(mTrace, traceListener);
复制
深色
复制成功
2.上传图片
JAVA
/** * 上传图片 * @param path */ private void putObject(String path) { // 对象key(即文件名称包括后缀,如track.jpg、track.png) String[] paths = path.split("/"); objectKey = paths[paths.length - 1]; // 对象类型 BosObjectType objectType = BosObjectType.image; try { // 通过文件形式上传 File file = new File(path); BosPutObjectRequest request = BosPutObjectRequest.buildFileRequest(trackApp.getTag(), trackApp.serviceId, objectKey, objectType, file); if (trackApp.isTraceStarted) { trackApp.mClient.putObject(request, bosListener); } else { viewUtil.showToast(this, "请在轨迹追踪页面开启对象存储并开启鹰眼服务"); } } catch (Exception e) { e.printStackTrace(); } }
复制
深色
复制成功
3.获取图片
JAVA
/** * 获取对象(图片) * * @param view */ public void onGetObject(View view) { // 对象类型 BosObjectType objectType = BosObjectType.image; BosGetObjectRequest request = new BosGetObjectRequest(trackApp.getTag(), trackApp.serviceId, objectKey, objectType); trackApp.mClient.getObject(request, bosListener); }
复制
深色
复制成功
4.获取图片URL
JAVA
/** * 获取对象(图片)URL * * @param view */ public void onGeneratePresignedUrl(View view) { // 对象类型 BosObjectType objectType = BosObjectType.image; BosGeneratePresignedUrlRequest request = new BosGeneratePresignedUrlRequest(trackApp.getTag(), trackApp.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); trackApp.mClient.generatePresignedUrl(request, bosListener); }
复制
深色
复制成功
5.监听状态
JAVA
bosListener = new OnBosListener() { @Override public void onPutObjectCallback(BosPutObjectResponse response) { viewUtil.showToast(BosActivity.this, response.getMessage()); } @Override public void onGetObjectCallback(final BosGetObjectResponse response) { if (response.getStatus()!= StatusCodes.SUCCESS) { viewUtil.showToast(BosActivity.this, response.getMessage()); return; } viewUtil.showToast(BosActivity.this, getString(R.string.save_picture)); new Thread() { @Override public void run() { saveObject(response); } }.start(); } @Override public void onGeneratePresignedUrlCallback(BosGeneratePresignedUrlResponse response) { if (response.getStatus()!= StatusCodes.SUCCESS) { viewUtil.showToast(BosActivity.this, response.getMessage()); return; } // 获取Object的URL Uri uri = Uri.parse(response.getUrl()); Intent intent = new Intent(Intent.ACTION_VIEW, uri); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // 执行URL BosActivity.this.startActivity(intent); } };
复制
深色
复制成功