注册

关于环信与百度地图冲突

目前碰到情况如下:
当使用百度地图SDK时,环信就会发生掉线的情况,而且这时候百度地图也无法执行定位回调。
但是在环信初始化前做以下判断后就没问题了:
appContext = this;
int pid = android.os.Process.myPid();
String processAppName = getAppName(pid);
// 如果APP启用了远程的service,此application:onCreate会被调用2次
// 为了防止环信SDK被初始化2次,加此判断会保证SDK被初始化1次
// 默认的app会在以包名为默认的process name下运行,如果查到的process name不是APP的process name就立即返回

if (processAppName == null ||!processAppName.equalsIgnoreCase("com.easemob.chatuidemo")) {
Log.e(TAG, "enter the service process!");
//"com.easemob.chatuidemo"为demo的包名,换到自己项目中要改成自己包名

// 则此application::onCreate 是被service 调用的,直接返回
return;
}
为什么会这样?第三方服务是指什么意思?这段代码看上去只是防止APP在远程service被调用的时候重复初始化。可是这个问题貌似并不是由于远程service被调用引起的。
已邀请:
像是多进程引起的问题吧
如果你的 APP 中有第三方的服务启动,请在初始化 SDK(EMClient.getInstance().init(applicationContext, options))方法的前面添加以下相关代码(相应代码也可参考 Demo 的 application),使用 EaseUI 库的就不用理会这个。

要回复问题请先登录注册