网易云信集成视频教程(一):如何快速实现安卓登录登出?

由于网易云信稳定、可靠的技术服务以及拥有深厚积淀的行业口碑,越来越多用户集成云信IM和音视频功能。为了提升用户集成效率,我们推出了一系列网易云信集成视频教程,希望帮助用户快速实现功能接入。第一期将为大家介绍如何快速实现安卓登录登出?

前期准备

  1. 到云信管理后台注册账号,创建应用,获取Appkey
  2. 在应用下注册账号,即Accid与Token

大概思路是这样的

  1. 在build.gradle中通过gradle形式实现SDK集成
  2. 在Androidmanifest.xml中配置Appkey以及一些后台的服务
  3. 在Activity上放两个EditText,一个用来输入用户id(Accid),一个用来输入密码(Token)
  4. 最后放一个Button来实现登录

先来开始创建功能,打开Android Studio,File – New – New Project

按照文档里的方式,通过gradle方式集成SDK

因为我们需要一些相应的权限,在Androidmanifest.xml中根据文档配置相应的权限

配置权限之后,添加相应的组件,Appkey(以下Appkey为示例,需重新创建应用获取)以及一些后台的进程服务

<!-- APP key, 可以在这里设置,也可以在 SDKOptions 中提供。

   如果 SDKOptions 中提供了,取 SDKOptions 中的值。 -->

<meta-data

    android:name="com.netease.nim.appKey"

    android:value="go9dnk49bkd9jd9vmel1kglw0803mgq3" />
<!-- 云信后台服务,请使用独立进程。 -->

<service

    android:name="com.netease.nimlib.service.NimService"

    android:process=":core"/>



<!-- 云信后台辅助服务 -->

<service

    android:name="com.netease.nimlib.service.NimService$Aux"

    android:process=":core"/>



<!-- 云信后台辅助服务 -->

<service

    android:name="com.netease.nimlib.job.NIMJobService"

    android:exported="true"

    android:permission="android.permission.BIND_JOB_SERVICE"

    android:process=":core"/>



<!-- 云信监视系统启动和网络变化的广播接收器,保持和 NimService 同一进程 -->

<receiver android:name="com.netease.nimlib.service.NimReceiver"

    android:process=":core"

    android:exported="false">

    <intent-filter>

        <action android:name="android.intent.action.BOOT_COMPLETED"/>

        <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>

    </intent-filter>

</receiver>



<!-- 云信进程间通信 Receiver -->

<receiver android:name="com.netease.nimlib.service.ResponseReceiver"/>



<!-- 云信进程间通信service -->

<service android:name="com.netease.nimlib.service.ResponseService"/>



<!-- 云信进程间通信provider -->

<!-- android:authorities="{包名}.ipc.provider", 请将com.netease.nim.demo替换为自己的包名 -->

<provider

    android:name="com.netease.nimlib.ipc.NIMContentProvider"

    android:authorities="com.example.liuxuanlin.login_demo.ipc.provider"

    android:exported="false"

    android:process=":core" />

然后我们配置一个简单的登录页面,打开activity_main.xml,使用LinearLayout布局,拖进去2个EditText, 1个Button,宽度均设置为match_parent,高度均设置为wrap_content

扫描二维码关注公众号,回复: 9830685 查看本文章

界面简单的搭好之后,这样才能愉快的写代码。

代码部分

在使用前,先配置Application,这里就使用MyApplication初始化SDK,并且在Androidmanifest.xml中声明,保证应用可以正常启动

首先是声明和初始化

创建LoginActivity,初始化控件,并且在这里还需要监听他们的事件,所以需要去实现onClickListener,加好后如下所示

public class LoginActivity extends Activity {

   
private EditText nameText;
    private
EditText pwdText;
    private
Button loginButton;

   
@Override
   
protected void onCreate(Bundle savedInstanceState) {
       
super.onCreate(savedInstanceState);
       
setContentView(R.layout.login);
       
findViews();//初始化控件
    }

    private void findViews() {

        nameText = findViewById(R.id.name);

        pwdText = findViewById(R.id.pwd);

        loginButton = findViewById(R.id.login);

        loginButton.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View view) {
                               login();

            }

        });

    }



}

 

通过SDK方式进行登陆

传入起初创建好的accid和token,交由SDK进行登陆托管,并根据登陆的回调实现相应的业务逻辑

/**

 * 登陆事件回调函数

 */

private void login() {

    LoginInfo info = new LoginInfo(nameText.getText().toString(),pwdText.getText().toString()); // config...

    RequestCallback<LoginInfo> callback =

            new RequestCallback<LoginInfo>() {

                @Override

                public void onSuccess(LoginInfo param) {

                    Toast.makeText(LoginActivity.this,"恭喜您登陆成功",Toast.LENGTH_SHORT).show();

                    NimUIKitImpl.setAccount(param.getAccount());

                    startActivity(new Intent(LoginActivity.this,MainActivity.class));

                }



                @Override

                public void onFailed(int code) {



                }



                @Override

                public void onException(Throwable exception) {



                }

                // 可以在此保存LoginInfo到本地,下次启动APP做自动登录用

            };

    NIMClient.getService(AuthService.class).login(info)

            .setCallback(callback);

}

以上就是我们网易云信集成视频教程第一期的内容,接下来我们还会推出AOS自定义消息收发讲解,及基于UI组件的说明教程,敬请关注。

想看更多集成视频教程,请戳https://netease.im/videoTutorial

 

发布了90 篇原创文章 · 获赞 18 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/netease_im/article/details/90292290
今日推荐