android容联云IM初始化介绍及简单登陆修改

我本来是先想把full_demo当model导入,然后取里面需要的文件再集成的,事实证明我还是错了。虽然昨天用了一天集成出的效果能够出界面并且不报错,但是效果还是差很多。我还是用full_demo当例子介绍其中的初始化和修改过程吧。

先给个容联云开发文档的链接:http://www.yuntongxun.com/doc/sdk/android/2_3_1_1.html

根据文档的介绍顺序,我先介绍full_demo里面导入的包:

先是上面的.so文件,libBaiduMapSDK应该是百度地图的sdk,liblocSDK应该是跟地理位置有关,聊天当中可以发送地理位置类型的信息,具体我也没有测试过,如果不需要在集成过程中可以删除,具体功能应该实在这:


libvoicechange是变声器库文件,变声器的位置在这:

下面说jar文件,baiduLBS还是跟地理定位有关,glide是用缓存加载图片的,jsoup好像是用来html解析的,locSDK跟地理位置信息有关,下面两个mob和sharesdk的都是和第三方分享有关的,pinyin是跟输入法有关的,umeng是用来消息推送和统计的,image_loader应该是用来加载图片的,感觉和glide重复了,glide加载图片还是不错的。

剩下两个libserphone.so和Yuntx_FullLib_v5.2.1r.jar就是容联云IM需要用到的文件。

下面是配置manifest文件:

需要注意的是uses-permission标签需要配置在application标签外面,activty标签和service、receiver标签需要放在application里面,我做个示例:

    <!-- 允许程序打开网络sockets(必选配置) -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- 允许程序访问有关的网络信息(必选配置) -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!-- 允许程序访问Wi-Fi网络状态信息(必选配置) -->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  <!-- 自定义实现Application -->
    <application
        android:name=".ECApplication"
        android:allowBackup="true"
        android:hardwareAccelerated="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:largeHeap="true"
        android:theme="@style/LauncherTheme">
        <!-- VoIP 呼叫界面 -->
        <activity
            android:name=".ui.voip.VoIPCallActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:launchMode="singleTask"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
            <intent-filter>
                <action android:name="con.yuntongxun.ecdemo.intent.ACTION_VOICE_CALL" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
  <service
            android:name="com.yuntongxun.ecsdk.ECClientService"
            android:enabled="true"
            android:process=":push" />
        // 以下两项为SDK事件提醒广播(必选配置)
        <receiver
            android:name="com.yuntongxun.ecsdk.booter.CCPReceivers$AlarmReceiver"
            android:process=":push" />
    </application>

大概就是这样。

其它需要注意的是文件依赖:



需要在build.gradle中配置你需要的文件依赖,full_demo里是配置好了的,只有Yuntx_FullLib_v5.2.1r.jar是最重要的,其它的看情况可以去掉,我加了一个butterknife,为了更快速开发,毕竟demo里面都是用的findViewById的方式来找到控件的。

其它要注意的地方也应该没什么了,后面讲一下我修改的地方,
首先是manifest文件:

在这里,我们注释掉了原来的LauncherActivity,改为自己新建一个NewLauncherActivity,放在 .ui.account文件目录下,

NewLauncherActivity的代码如下:

public class NewLauncherActivity extends Activity {

    @Bind(R.id.btnLogin)
    Button btnLogin;
    @Bind(R.id.et_self_id)
    EditText etSelfId;
    @Bind(R.id.et_contact_id)
    EditText etContactId;

     //登陆id,相当于自己用户名
    private String selfId;

    //联系人id,相当于对方用户名
    private String contactId;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_new_launcher);
        ButterKnife.bind(this);
    }

    //初始化自己登陆信息
    private void initSelf() {
        //im登陆
        String appKey = FileAccessor.getAppKey();
        String token = FileAccessor.getAppToken();
        ClientUser clientUser = new ClientUser(selfId);
        clientUser.setAppKey(appKey);
        clientUser.setAppToken(token);
        clientUser.setLoginAuthType(ECInitParams.LoginAuthType.NORMAL_AUTH);
        clientUser.setPassword("");
        CCPAppManager.setClientUser(clientUser);//初始化用户自己的信息并把数据放到contact数据库当中
        SDKCoreHelper.init(ECApplication.getInstance().getApplicationContext(), ECInitParams.LoginMode.FORCE_LOGIN);//初始化SDK
    }

    //初始化联系人信息 并把信息传到聊天界面
    private void initContact() {
        Intent intent = new Intent(this, ChattingActivity.class);//chattingActivity为图文聊天界面Activity
        intent.putExtra(ChattingFragment.RECIPIENTS, contactId);//相当于对方用户名
        intent.putExtra(ChattingFragment.CONTACT_USER, "55555");//相当于对方昵称
        intent.putExtra(ChattingFragment.CUSTOMER_SERVICE, false);
        startActivity(intent);//通过intent传值初始化联系人信息
    }


    //初始化信息后登陆im
    private void login(){
        initSelf();
        initContact();
    }


    //登陆按钮的点击事件监听
    @OnClick(R.id.btnLogin)
    public void onClick() {
        selfId = etSelfId.getText().toString().trim();
        contactId = etContactId.getText().toString().trim();

        if(selfId.isEmpty()){
            ToastUtil.showMessage("请输入您自己登陆的id");
        }else if(contactId.isEmpty()){
            ToastUtil.showMessage("请输入联系人id");
        }else
            login();
    }
}

注释里面已经讲的很清楚了,我就不说什么了,下面看实现后的效果:

这样就可以直接登陆进我们IM聊天界面,并进行图文、语音和视频通话了。

后面我会讲解里面比较重要的Activity和方法的作用,以及界面在哪里修改,怎么修改,demo里面用了很多的自定义控件,确实不太好找到具体的位置,下面提供一下这次源码的下载链接:http://pan.baidu.com/s/1mhGEim8


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值