环信SDK集成与登录注册-Android

环信SDK下载与导入

  • 下载

    下好的压缩包目录有多个,最重要的为下面两个

    libs 文件夹:包含IM和实时音视频功能所需要的 jar 和 so 文件
    libs.without.audio 文件夹:无实时语音、实时视频功能的 SDK 包,如果项目中只用到聊天功能,可以把项目里的 jar 和 so 文件替换成此文件夹里的

  • 导入

    此处我用的是libs文件夹。该文件夹目录下有三个文件夹和一个jar包,在AndroidStudio工程project目录下app目录新建子文件夹jniLibs,将三个文件夹复制到此目录

  • 配置

  • 项目根目录的build.gradle文件里同样根节点中添加

    repositories {
    maven {
    url “https://raw.githubusercontent.com/HyphenateInc/Hyphenate-SDKAndroid/master/repository”
    }
    }

  • module的build.gradle文件里同样根节点中添加

    android {
    //use legacy for android 6.0
    useLibrary ‘org.apache.http.legacy’
    }
    dependencies {
    compile ‘com.android.support:appcompat-v7:23.4.0’
    //Optional compile for GCM (Google Cloud Messaging).
    compile ‘com.google.android.gms:play-services-gcm:9.4.0’
    compile ‘com.hyphenate:hyphenate-sdk:3.2.3’
    }

	>官方文档中是要把jar包也添加到工程,但是在gradle中配置之后运行会报这样一个错误
	>这是包冲突的错误,所以可以选择不把jar包添加到工程	
	
		Error:Execution failed for task ':app:transformClassesWithDexForDebug'.> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: 
		java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Lcom/hyphenate/EMCallBack;
  • 清单文件配置


 	>权限配置

			
		    
		    
		    
		    
		    
		    
		    
		      
		    
		    
		    
		    
		    
		    
		    
		    

	>application中配置

		
    	
		
    	
    	
        
        
        
            
                
                
            
            
            
                
                
            
        
  • 最后记得同步一下你的配置

  • 简单登录注册的实现

    • Login页面编写

  	user = (EditText) findViewById(R.id.login_user);
        psd = (EditText) findViewById(R.id.login_psw);
        login = (Button) findViewById(R.id.login_login);
       register = (Button) findViewById(R.id.login_register);    
        //只写了两个输入框,一个注册按钮,一个登录按钮    
  
       //注册实现
     register.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //注册失败会抛出HyphenateException
                final String username = user.getText().toString().trim();
                final String pwd = psd.getText().toString();
                if (!TextUtils.isEmpty(username)&& !TextUtils.isEmpty(username)) {
                    new Thread(new Runnable() {
                        @Override
                        public void run() {
                            try {
                                EMClient.getInstance().createAccount(username, pwd);//同步方法
                                runOnUiThread(new Runnable() {
                                    @Override
                                    public void run() {
                                        Toast.makeText(LoginActivity.this, "注册成功请登录", Toast.LENGTH_SHORT).show();
                                    }
                                });
                            } catch (HyphenateException e) {
                                runOnUiThread(new Runnable() {
                                    @Override
                                    public void run() {
                                        Toast.makeText(LoginActivity.this, "注册失败", Toast.LENGTH_SHORT).show();
                                    }
                                });
                            }
                        }
                    }).start();

                }
                register(username,pwd);
           	 }
			});

		//唯一要注意的事是注册功能的实现要在子线程中操作,
	
	//登录

			login.setOnClickListener(new View.OnClickListener() {
	            @Override
	            public void onClick(View v) {
	                String userName = user.getText().toString().trim();
	                String password = psd.getText().toString();
	                if (!TextUtils.isEmpty(userName)&& !TextUtils.isEmpty(password)) {
	                    Log.e("main", "登录开始");
	                EMClient.getInstance().login(userName,password,new EMCallBack() {//回调
	                    @Override
	                    public void onSuccess() {
	                        EMClient.getInstance().groupManager().loadAllGroups();
	                        EMClient.getInstance().chatManager().loadAllConversations();
	                        Log.e("main", "登录聊天服务器成功!");
	                        startActivity(new Intent(LoginActivity.this,MainActivity.class));
	                    }
	
	                    @Override
	                    public void onProgress(int progress, String status) {
	
	                    }
	
	                    @Override
	                    public void onError(int code, String message) {
	                        Log.e("main", "登录聊天服务器失败!");
	                    }
	                });
	                }
	            }
	        });
> 账号的控制可以在环信的个人应用后台去管理,不用担心一部手机无法进行通话测试

你可能感兴趣的:(环信SDK集成与登录注册-Android)