栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Day16 七牛云和百度地图

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Day16 七牛云和百度地图

Day16 七牛云和百度地图
    • 一.七牛云对象存储
      • 1.服务端搭建:已搭建,调用下面接口获得token即可
      • 2.客户端上传文件:查看开发文档
        • (1)依赖:注意okhttp如果之前添加注释掉,不能重复
        • (2)application初始化:
        • (3)上传图片到七牛云:
        • (4)结合环信将用户发送的图片上传到七牛云
    • 二.百度地图:发送位置

一.七牛云对象存储

为什么使用七牛云存储??
公司中的项目后台存储数据,但是针对视频和图片等数据可以借助第三方七牛云统一管理存储。

1.服务端搭建:已搭建,调用下面接口获得token即可

http://39.106.204.190:7777/image/

2.客户端上传文件:查看开发文档

https://developer.qiniu.com/kodo/1236/android

(1)依赖:注意okhttp如果之前添加注释掉,不能重复
  // 1 直接导入
    implementation 'com.qiniu:qiniu-android-sdk:8.4.+'
// 2 如果要修改okhttp依赖的版本,可采用以下方式(强烈建议使用七牛库依赖的okhttp版本)
    implementation ('com.qiniu:qiniu-android-sdk:8.4.+'){
        exclude (group: 'com.squareup.okhttp3', module: 'okhttp')
    }
    implementation 'com.squareup.okhttp3:okhttp:4.2.2'
(2)application初始化:

注意:服务器在华南区域需要改为FixedZone.zone2

public class App extends Application {
    public static    UploadManager uploadManager;
    @Override
    public void onCreate() {
        super.onCreate();

        Configuration config = new Configuration.Builder()
                .connectTimeout(90)              // 链接超时。默认90秒
                .useHttps(true)                  // 是否使用https上传域名
                .useConcurrentResumeUpload(true) // 使用并发上传,使用并发上传时,除最后一块大小不定外,其余每个块大小固定为4M,
                .concurrentTaskCount(3)          // 并发上传线程数量为3
                .responseTimeout(90)             // 服务器响应超时。默认90秒
//                .recorder(recorder)              // recorder分片上传时,已上传片记录器。默认null
//                .recorder(recorder, keyGen)      // keyGen 分片上传时,生成标识符,用于片记录器区分是那个文件的上传记录
                .zone(FixedZone.zone2)           // 设置区域,不指定会自动选择。指定不同区域的上传域名、备用域名、备用IP。
                .build();

// 重用uploadManager。一般地,只需要创建一个uploadManager对象
        uploadManager = new UploadManager(config);
        
        
        
        ZXingLibrary.initDisplayOpinion(this);
        ARouter.openDebug();
        ARouter.openLog();
        ARouter.init(this);
        EMOptions options = new EMOptions();
// 默认添加好友时,是不需要验证的,改成需要验证
        options.setAcceptInvitationAlways(false);
// 是否自动将消息附件上传到环信服务器,默认为True是使用环信服务器上传下载,如果设为 false,需要开发者自己处理附件消息的上传和下载
        options.setAutoTransferMessageAttachments(true);
// 是否自动下载附件类消息的缩略图等,默认为 true 这里和上边这个参数相关联
        options.setAutoDownloadThumbnail(true);

初始化
//        EMClient.getInstance().init(this, options);
在做打包混淆时,关闭debug模式,避免消耗不必要的资源
//        EMClient.getInstance().setDebugMode(true);
        //EaseIM初始化
        if(EaseIM.getInstance().init(this, options)){
            //在做打包混淆时,关闭debug模式,避免消耗不必要的资源
            EMClient.getInstance().setDebugMode(true);
            //EaseIM初始化成功之后再去调用注册消息监听的代码 ...
        }
    }
}

(3)上传图片到七牛云:
OkHttpClient build = new OkHttpClient.Builder().build();
        Request request = new Request.Builder()
                .get()
                .url("http://39.106.204.190:7777/image/")
                .build();
        build.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(@NotNull Call call, @NotNull IOException e) {

            }

            @Override
            public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
                String token  = response.body().string();

                App.uploadManager.put("/sdcard/Pictures/hongbao.jpeg", null, token,
                        new UpCompletionHandler() {
                            @Override
                            public void complete(String key, ResponseInfo info, JSONObject res) {
                                //res 包含 hash、key 等信息,具体字段取决于上传策略的设置
                                if(info.isOK()) {
                                    Log.i("qiniu", "Upload Success");
                                } else {
                                    Log.i("qiniu", "Upload Fail");
                                    //如果失败,这里可以把 info 信息上报自己的服务器,便于后面分析上传错误原因
                                }
                                try {
                                    String name = "http://racwcwwhb.hn-bkt.clouddn.com/" + res.getString("key");
                                    Log.i("qiniu", "complete: "+name);
                                } catch (JSONException e) {
                                    e.printStackTrace();
                                }
                            }
                        }, null);
            }
        });
(4)结合环信将用户发送的图片上传到七牛云
public class ChatFragment extends EaseChatFragment {


    @Override
    public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (data != null) {
            Uri selectedImage = data.getData();
            if (selectedImage != null) {
                String filePath = EaseFileUtils.getFilePath(mContext, selectedImage);
                upload(filePath);//上传图片

                if(!TextUtils.isEmpty(filePath) && new File(filePath).exists()) {
                    chatLayout.sendImageMessage(Uri.parse(filePath));
                }else {
                    EaseFileUtils.saveUriPermission(mContext, selectedImage, data);
                    chatLayout.sendImageMessage(selectedImage);
                }
            }
        }
    }


    public void upload(String path){
        OkHttpClient build = new OkHttpClient.Builder().build();
        Request request = new Request.Builder()
                .get()
                .url("http://39.106.204.190:7777/image/")
                .build();
        build.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(@NotNull Call call, @NotNull IOException e) {

            }

            @Override
            public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {

                String token  = response.body().string();

                App.uploadManager.put(path, null, token,
                        new UpCompletionHandler() {
                            @Override
                            public void complete(String key, ResponseInfo info, JSONObject res) {
                                //res 包含 hash、key 等信息,具体字段取决于上传策略的设置
                                if(info.isOK()) {
                                    Log.i("qiniu", "Upload Success");
                                } else {
                                    Log.i("qiniu", "Upload Fail");
                                    //如果失败,这里可以把 info 信息上报自己的服务器,便于后面分析上传错误原因
                                }
                                try {
                                    String name = "http://racwcwwhb.hn-bkt.clouddn.com/" + res.getString("key");
                                    Log.i("qiniu", "complete: "+name);
                                } catch (JSONException e) {
                                    e.printStackTrace();
                                }
                                Log.i("qiniu", key + ",rn " + info + ",rn " + res);
                            }
                        }, null);


            }
        });

    }
}
二.百度地图:发送位置
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/885780.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号