环信所遇到的问题总结

1.在使用环信判断是否与服务器连接以及之前是否登陆时 一直出现空指针异常
//获取是否和服务器链接的状态
布尔连接= EMClient。getInstance().isConnected();
//之前是否登陆过
布尔值 loggedInBefore = EMClient。getInstance().isLoggedInBefore();
        后来才知道到底是为什么:原因是在清单文件中( manifest )少写了一句    
android :name = “.utlis.MyApplication”
这句话的作用是什么:  这个名字属性是用来设置所有的Activity是属于那个Application的,默认是android.app.Application当然也可以自定义一个类: public class MyApplication extends Application { }  ,将我们以前一直使用默认的应用程序设置成我们自定义的应用程序,应用程序的作用就是为了放一些全局的和一些上下文都要用到的变量和方法之类的

环信的配置工作流程:
1.下载环信SDK
2.libs.without.audio文件夹下的文件以及的.jar拷贝到项目的库目录下(库目录下无实时语音, 实时 音频功能的SDK包,如果项目中只用到聊天功能,可以采用此文件夹下的内容)。
3.在build.gradle文件夹下导入(sourceSets {main {jniLibs.srcDirs = ['libs']}})。
4.在清单文件中加入以下权限,以及写上你注册的的AppKey。
        {
< uses-permission   android :name = “android.permission.VIBRATE”  />
< uses-permission   android :name = “android.permission.INTERNET”  />
< uses-permission android :name = “android.permission.RECORD_AUDIO” />
< uses-permission android :name = “android.permission.CAMERA” />
< uses-permission android :name = “android.permission.ACCESS_NETWORK_STATE” />
< uses-permission android :name = “android.permission.WRITE_EXTERNAL_STORAGE” />
< uses-permission android :name = “android.permission.MOUNT_UNMOUNT_FILESYSTEMS” />
< uses-permission android :name = “android.permission.ACCESS_FINE_LOCATION” />
< uses-permission android :name = “android.permission.GET_TASKS” />
< uses-permission android :name = “android.permission.ACCESS_WIFI_STATE” />
< uses-permission android :name = “android.permission.CHANGE_WIFI_STATE” />
< uses-permission android :name = “android.permission.WAKE_LOCK” />
< uses-permission android :name = “android.permission.MODIFY_AUDIO_SETTINGS” />
< uses-permission android :name = “android.permission.READ_PHONE_STATE” />
< uses-permission android :name = “android.permission.RECEIVE_BOOT_COMPLETED” />
-------------------------------------------------- ------------------------------
<! - 设置环信应用的AppKey  - >
 < meta-data
 android :name = “EASEMOB_APPKEY”
 android :value = “XXXXXXXXXXXXXXXXXXXXXXXXX” />
 <! - 声明SDK所需的service SDK核心功能 - >
 < service
 android :name = “com.hyphenate.chat.EMChatService”
 android :exported = “true” />                
< service
 android :name = “com.hyphenate.chat.EMJobService”
 android :exported = “true”
 android :permission = “android.permission.BIND_JOB_SERVICE” />
 <! - 声明SDK所需的receiver  - >
 < receiver android :name = “com.hyphenate.chat.EMMonitorReceiver” >            
    < intent-filter >
        < action android :name = “android.intent.action.PACKAGE_REMOVED” />

        < data android :scheme = “package” />
    </ intent-filter >
     <! - 可选filter  - >
     < intent-filter >
        < action android :name = “android.intent.action.BOOT_COMPLETED” />
        < action android :name = “android.intent.action.USER_PRESENT” />
    </ intent-filter >
</ receiver >
        }
5.初始化SDK,要求在应用的的onCreate()方法中进行初始化(此时你需要自定义一个类继承自应用,重写的OnCreate()方法)   
公共类 MyApplication扩展应用程序{
    @覆盖
    public void onCreate(){
        super .onCreate();
        //初始化环信的SDK
        initHX();
    }
 
  
    私人无效 initHX(){
        EMOptions options = new EMOptions();
        //默认添加好友时,是不需要验证的,改成需要验证
        options.setAcceptInvitationAlways(false);
        //初始化
        EMClient。getInstance().init(this,options);
        //在做打包混淆时,关闭调试模式,避免消耗不必要的资源
        EMClient。getInstance().setDebugMode(true);
    }
}
6.在清单文件中 应用程序节点下修改android :name = “.utlis.MyApplication” (该应用程序为你自定义的应用程序)


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值