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

看完环信官方的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)