由於網易雲信穩定、可靠的技術服務以及擁有深厚積澱的行業口碑,越來越多用戶集成雲信IM和音視頻功能。爲了提升用戶集成效率,我們推出了一系列網易雲信集成視頻教程,希望幫助用戶快速實現功能接入。第一期將爲大家介紹如何快速實現安卓登錄登出?
前期準備
- 到雲信管理後臺註冊賬號,創建應用,獲取Appkey
- 在應用下注冊賬號,即Accid與Token
大概思路是這樣的
- 在build.gradle中通過gradle形式實現SDK集成
- 在Androidmanifest.xml中配置Appkey以及一些後臺的服務
- 在Activity上放兩個EditText,一個用來輸入用戶id(Accid),一個用來輸入密碼(Token)
- 最後放一個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