美文网首页工作生活
Android集成环信发送位置消息更换为高德sdk

Android集成环信发送位置消息更换为高德sdk

作者: Lna_35da | 来源:发表于2019-06-29 16:13 被阅读0次

    看完环信官方的demo操作起来还是比较简单的下面贴上步骤
    1.点击位置的点击事件更换 ,demo中的点击事件是在EaseChatFragment下的onExtendMenuItemClick里面官方提供了EaseBaiduMapActivity 这个定位页面。
    2.修改为高德其实非常简单只需要在ChatFragment操作就可以了
    2.1修改点击事件在ChatFragment的onExtendMenuItemClick方法中添加

    //打开高德的定位页面   这个页面自己写哦   就是一个地图然后获取位置信息
     case 3: //map   记得return true;
                 startActivityForResult(new Intent(getActivity(), LocationActivity.class),         
                       REQUEST_CODE_MAP);
                  break;
    
    

    2.2 在自己实现高德地图的页面返回定位信息 参数名称不要修改 不然其它地方也要修改

            Intent intent = this.getIntent();
            intent.putExtra("latitude", lat);
            intent.putExtra("longitude", lgt);
            intent.putExtra("address", str);
            this.setResult(Activity.RESULT_OK, intent);
            finish();
    

    2.3接下来在ChatFragment中的onActivityResult中接收定位信息并发送消息

     if (requestCode == REQUEST_CODE_MAP) { // location
                    double latitude = data.getDoubleExtra("latitude", 0);
                    double longitude = data.getDoubleExtra("longitude", 0);
                    String locationAddress = data.getStringExtra("address");
                    if (locationAddress != null && !locationAddress.equals("")) {
                        sendLocationMessage(latitude, longitude, locationAddress);
                    }
    

    走到这里从高德获取的位置消息已经成功发送给好友了 接下来是获取查看好友位置消息
    2.4 查看位置消息
    还是在ChatFragment里 通过getCustomChatRow方法

    if (message.getType()==EMMessage.Type.LOCATION){
                    return new LoccationAdapter();
                }
    

    LoccationAdapter 继承位置消息展示 重写了点击事件

    public class LoccationAdapter extends EaseChatLocationPresenter {
        @Override
        public void onBubbleClick(EMMessage message) {
            EMLocationMessageBody locBody = (EMLocationMessageBody) message.getBody();
            Intent intent = new Intent(getContext(), LocationActivity.class);
            intent.putExtra("latitude", locBody.getLatitude());
            intent.putExtra("longitude", locBody.getLongitude());
            intent.putExtra("address", locBody.getAddress());
            getContext().startActivity(intent);
        }
    }
    

    好了大功告成,至于高德sdk什么的相信大家都能自己解决的·

    相关文章

      网友评论

        本文标题:Android集成环信发送位置消息更换为高德sdk

        本文链接:https://www.haomeiwen.com/subject/clupcctx.html