網易雲信集成視頻教程(一):如何快速實現安卓登錄登出?

由於網易雲信穩定、可靠的技術服務以及擁有深厚積澱的行業口碑,越來越多用戶集成雲信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

界面簡單的搭好之後,這樣才能愉快的寫代碼。

代碼部分

在使用前,先配置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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章