(未显示1个用户的1个中间版本) | |||
第1行: | 第1行: | ||
<div id="examples_center"><!-- 页面标题 --><div class="title-hd">图片上传</div></div><div class="demos_wrap"><div class="header"><div class="andiord-header active">Android</div></div><div class="andiord-wrap wrap"><div class="wrap-wp"><div class="wrap_left"><div class="left-video"><div class="img-bg-and"></div><div class="phone-android"><div class="video-wrap infor"><div class="video-control"></div><!-- 安卓视频位置 (不写协议)--><pre>https://mapopen-website-wiki.cdn.bcebos.com/demos/andDemos/yingyan/图片服务.mp4</pre> | <div id="examples_center"><!-- 页面标题 --><div class="title-hd">图片上传</div></div><div class="demos_wrap"><div class="header"><div class="andiord-header active">Android</div></div><div class="andiord-wrap wrap"><div class="wrap-wp"><div class="wrap_left"><div class="left-video"><div class="img-bg-and"></div><div class="phone-android"><div class="video-wrap infor"><div class="video-control"></div><!-- 安卓视频位置 (不写协议)--><pre>https://mapopen-website-wiki.cdn.bcebos.com/demos/andDemos/yingyan/图片服务.mp4</pre> | ||
− | </div><div class="video-icon-and"><div class="play play-and"></div><div class="stop stop-and"></div></div></div><div class="progressWrap-hide-and"></div><div id="videoControls-and"><div id="progressWrap-and"><div id="playProgress-and"></div></div></div></div><div class="left-qrCode"><!-- 安卓二维码位置 --><div class="qrCode-and">1590746640|//mapopen-website-wiki.bj.bcebos.com/demos/andDemos/yingyan/android-preview.png</div><div>扫码体验</div></div></div><div class="wrap_right"><div class="wrap_right_nav"><div class="wrap_right_nav_l"><div>使用产品</div><div><!-- 安卓使用产品下选项,可有多个 | + | </div><div class="video-icon-and"><div class="play play-and"></div><div class="stop stop-and"></div></div></div><div class="progressWrap-hide-and"></div><div id="videoControls-and"><div id="progressWrap-and"><div id="playProgress-and"></div></div></div></div><div class="left-qrCode"><!-- 安卓二维码位置 --><div class="qrCode-and">1590746640|//mapopen-website-wiki.bj.bcebos.com/demos/andDemos/yingyan/android-preview.png</div><div>扫码体验</div></div></div><div class="wrap_right"><div class="wrap_right_nav"><div class="wrap_right_nav_l"><div>使用产品</div><div><!-- 安卓使用产品下选项,可有多个 --><div class="documentA">图片服务|/index.php?title=android-yingyan/guide/object</div></div></div><div class="wrap_right_nav_r">下载源码</div><!-- 安卓源码地址 --><div class="github-url-and">//mapopen-website-wiki.bj.bcebos.com/demos/andDemos/yingyan/BaiduTrace_AndroidSDK_v3_1_8_Sample_demo.zip</div></div><div class="wrap_table"><div class="table_nav"><div>核心接口</div></div><div class="table_wrap"><div class="table_wrap_title"><div>类</div><div>接口</div><div>描述</div></div><!-- 表格接口,可有多个 --><div class="table_wrap_con"><div class="table_wrap_w"><div><div class="table-wrap-className">LBSTraceClient</div></div><div><div>putObject(BosPutObjectRequest request, OnBosListener listener)</div></div><div><div>上传对象</div></div></div><!-- ProcessOption --><div class="table_wrap_w"><div><div class="table-wrap-className">LBSTraceClient</div></div><div><div>getObject(BosGetObjectRequest request, OnBosListener listener)</div></div><div><div>获取对象</div></div></div><div class="table_wrap_w"><div><div class="table-wrap-className">LBSTraceClient</div></div><div><div>generatePresignedUrl(BosGeneratePresignedUrlRequest request, OnBosListener listener)</div></div><div><div>获取对象的URL</div></div></div><div class="table_wrap_w"><div><div class="table-wrap-className">BosPutObjectRequest</div></div><div><div>buildFileRequest(int tag, long serviceId, String objectKey, BosObjectType objectType, File file)</div></div><div><div>构造上传文件类型的请求实例</div></div></div></div></div></div></div></div><div class="pre-nav"><div class="left-icon"></div><div>重点关注</div></div><div class="pre-nav">1)、 注:鹰眼 Android SDK v3.0以上版本支持随轨迹上传图像等对象数据,若需使用此功能,该参数需设为 true,且需导入bos-android-sdk-1.0.2.jar。<br/>// 是否需要对象存储服务,默认为:false,关闭对象存储服务。<br/>boolean isNeedObjectStorage = true;<br/>// 初始化轨迹服务<br/>Trace mTrace = new Trace(serviceId, entityName, isNeedObjectStorage);</div><div class="pre-nav"><div class="left-icon"></div><div>核心代码</div></div><div class="pre-nav"><div>1.开启对象储存服务</div></div><div class="pre-wrap"><div class="pre-wrap-nav"><div>JAVA</div></div><!-- 安卓示例代码位置 --><div class="pre-wrap-w pre-wrap-w-and"><pre class="prettyprint prettyprinted pre-and">// 是否需要对象存储服务,默认为:false,关闭对象存储服务。 |
boolean isNeedObjectStorage = true; | boolean isNeedObjectStorage = true; | ||
// 初始化轨迹服务 | // 初始化轨迹服务 | ||
第87行: | 第87行: | ||
@Override | @Override | ||
public void onGetObjectCallback(final BosGetObjectResponse response) { | public void onGetObjectCallback(final BosGetObjectResponse response) { | ||
− | if (response.getStatus() | + | if (response.getStatus()!= StatusCodes.SUCCESS) { |
viewUtil.showToast(BosActivity.this, response.getMessage()); | viewUtil.showToast(BosActivity.this, response.getMessage()); | ||
return; | return; | ||
第102行: | 第102行: | ||
@Override | @Override | ||
public void onGeneratePresignedUrlCallback(BosGeneratePresignedUrlResponse response) { | public void onGeneratePresignedUrlCallback(BosGeneratePresignedUrlResponse response) { | ||
− | if (response.getStatus() | + | if (response.getStatus()!= StatusCodes.SUCCESS) { |
viewUtil.showToast(BosActivity.this, response.getMessage()); | viewUtil.showToast(BosActivity.this, response.getMessage()); | ||
return; | return; | ||
第139行: | 第139行: | ||
- (void)onQueryTrackDistance:(NSData *)response { | - (void)onQueryTrackDistance:(NSData *)response { | ||
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingAllowFragments error:nil]; | NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingAllowFragments error:nil]; | ||
− | NSLog(@"on Query Track Distance response: | + | NSLog(@"on Query Track Distance response:%@", dict); |
} | } | ||
</pre> | </pre> | ||
<div class="pre-btn"><div class="pre-btn-copy-ios">复制</div><div class="pre-btn-cb-ios">深色</div></div><div class="success">复制成功</div></div></div></div></div> | <div class="pre-btn"><div class="pre-btn-copy-ios">复制</div><div class="pre-btn-cb-ios">深色</div></div><div class="success">复制成功</div></div></div></div></div> |
2022年2月25日 (五) 17:09的最后版本
图片上传
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); } };
复制
深色
复制成功