用户工具

im_android_ui组件开发指南

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版 两侧同时换到之后的修订记录
im_android_ui组件开发指南 [2016/01/07 06:12]
liuxia [一、IMKit界面组件介绍]
im_android_ui组件开发指南 [2016/01/20 08:08]
liuxia
行 6: 行 6:
 IMKit界面组件是集成云之讯的登录登出云平台、IM会话列表、好友列表、聊天界面等,​可快速集成和高度自定义界面的开发包。 \\  IMKit界面组件是集成云之讯的登录登出云平台、IM会话列表、好友列表、聊天界面等,​可快速集成和高度自定义界面的开发包。 \\ 
  
-前往云之讯官网下载IMKit([[http://​www.ucpaas.com/​product_service/​im#​item4 |下载地址在页面底部]]),IMKit界面组件开发包含以下两部分:\\+前往云之讯官网下载IMKit([[http://​www.ucpaas.com/​product_service/​im#​item4|下载地址]]),IMKit界面组件开发包含以下两部分:\\
   *1、IMKIT接口文档.rar,介绍了SDK中的类及其方法\\   *1、IMKIT接口文档.rar,介绍了SDK中的类及其方法\\
   *2、IMUISDK.rar,包含了库文件和资源文件。\\   *2、IMUISDK.rar,包含了库文件和资源文件。\\
行 22: 行 22:
 ==== 2、导入工程的操作 ==== ==== 2、导入工程的操作 ====
 将IMUISDK.rar解压,得到libs和res两个文件夹,将这两个文件夹复制到工程根目录下,与工程原有的两个同名文件夹合并,从而将SDK中的库文件及资源文件添加到工程中,合并后工程效果如下: 将IMUISDK.rar解压,得到libs和res两个文件夹,将这两个文件夹复制到工程根目录下,与工程原有的两个同名文件夹合并,从而将SDK中的库文件及资源文件添加到工程中,合并后工程效果如下:
-{{ :im_sdk_1.png?nolink&​300 ​|}} + 
-{{ :​im_sdk_2.png?​nolink&​300 |}}+{{ :im_sdk_1.jpg?200 |}} 
 ==== 3、继承IMKit中的Application ==== ==== 3、继承IMKit中的Application ====
 用户在工程中新建继承自YZXMainApplication的类,并在其onCreate()方法中调用父类的onCreate()方法,类代码如下: ​ 用户在工程中新建继承自YZXMainApplication的类,并在其onCreate()方法中调用父类的onCreate()方法,类代码如下: ​
行 41: 行 42:
 ==== 4、添加权限和组件声明 ==== ==== 4、添加权限和组件声明 ====
 在工程的AndroidManifest.xml文件中添加权限和组件声明,添加的代码如下: ​ 在工程的AndroidManifest.xml文件中添加权限和组件声明,添加的代码如下: ​
-  ​<​uses-permission android:​name=android.permission.MODIFY_AUDIO_SETTINGS” />  +   <​uses-permission android:​name="android.permission.MODIFY_AUDIO_SETTINGS" ​/> 
-  <​uses-permission android:​name="​android.permission.RECORD_AUDIO"​ /> +    <​uses-permission android:​name="​android.permission.RECORD_AUDIO"​ /> 
-  <​uses-permission android:​name="​android.permission.VIBRATE"​ /> +    <​uses-permission android:​name="​android.permission.VIBRATE"​ /> 
-  <​uses-permission android:​name="​android.permission.WRITE_EXTERNAL_STORAGE"​ /> +    <​uses-permission android:​name="​android.permission.WRITE_EXTERNAL_STORAGE"​ /> 
-  <​uses-permission android:​name="​android.permission.ACCESS_NETWORK_STATE"​ /> +    <​uses-permission android:​name="​android.permission.ACCESS_NETWORK_STATE"​ /> 
-  <​uses-permission android:​name="​android.permission.READ_PHONE_STATE"​ /> +    <​uses-permission android:​name="​android.permission.READ_PHONE_STATE"​ /> 
-  <​uses-permission android:​name="​android.permission.INTERNET"​ /> +    <​uses-permission android:​name="​android.permission.INTERNET"​ /> 
-  <​uses-permission android:​name="​android.permission.CALL_PHONE"​ /> +    <​uses-permission android:​name="​android.permission.CALL_PHONE"​ /> 
-  <​uses-permission android:​name="​android.permission.WAKE_LOCK"​ /> +    <​uses-permission android:​name="​android.permission.WAKE_LOCK"​ /> 
-  <​uses-permission android:​name="​android.permission.DISABLE_KEYGUARD"​ /> +    <​uses-permission android:​name="​android.permission.DISABLE_KEYGUARD"​ /> 
-  <​uses-permission android:​name="​android.permission.CAMERA"​ /> +    <​uses-permission android:​name="​android.permission.CAMERA"​ /> 
-  <​uses-permission android:​name="​android.permission.ACCESS_WIFI_STATE"​ /> +    <​uses-permission android:​name="​android.permission.ACCESS_WIFI_STATE"​ /> 
-  <​uses-permission android:​name="​android.permission.WRITE_SETTINGS"​ /> +    <​uses-permission android:​name="​android.permission.WRITE_SETTINGS"​ /> 
-  <​uses-permission android:​name="​android.permission.READ_CONTACTS"/>​ +    <​uses-permission android:​name="​android.permission.READ_CONTACTS"/>​ 
-  <​uses-permission android:​name=android.permission.VIBRATE” />  +    <​uses-permission android:​name="android.permission.VIBRATE" ​/> 
-  <application +    <uses-permission android:​name="​com.android.launcher.permission.READ_SETTINGS"​ /> 
-      android:​name="​.MainApplication+    <​uses-permission ​android:​name="​android.permission.CHANGE_WIFI_STATE"​ /> 
-      android:​icon="​@drawable/​ic_launcher"​ +    <​uses-permission android:​name="​android.permission.GET_TASKS"​ /> 
-      android:​label="​@string/​app_name"​ +    <​uses-permission android:​name="​android.permission.ACCESS_COARSE_LOCATION"​ /> 
-      android:​theme="​@style/​MyAppTheme">  +    <​uses-permission android:​name="​android.permission.ACCESS_FINE_LOCATION"​ /> 
-      <activity +    <​!--百度地图需要的权限-->​ 
-          android:​name="​com.example.sdk_demo.MainActivity+    <​uses-permission android:​name="​android.permission.GET_ACCOUNTS"​ /> 
-          android:label="@string/​app_name" > +    <​uses-permission android:​name="​android.permission.USE_CREDENTIALS"​ /> 
-          <intent-filter+    <​uses-permission android:​name="​android.permission.MANAGE_ACCOUNTS"​ /> 
-              <action ​android:​name="​android.intent.action.MAIN" /> +    <​uses-permission android:​name="​android.permission.AUTHENTICATE_ACCOUNTS"​ /> 
-              <category ​android:​name="​android.intent.category.LAUNCHER" /> +    <​uses-permission android:​name="​android.permission.BROADCAST_STICKY"​ /> 
-          </intent-filter+    <​application 
-      </activity> +        android:​allowBackup="​true
-       +        android:​icon="​@drawable/​ic_launcher"​ 
-      <​activity +        android:​label="​@string/​app_name"​ 
-          android:​name="​com.yzx.im_UIdemo.IMChatActivity+        android:​theme="​@style/​AppTheme" > 
-          android:​screenOrientation="​portrait" ​> +        <!--这里输入百度密钥-->​ 
-      </activity+        <​meta-data 
-      <​activity android:​name="​com.yzx.im_UIdemo.IMMessageActivity" ​> +            android:​name="​com.baidu.lbsapi.API_KEY
-      </activity+            android:value="5ZVIGi4nwol98XwTnY26DFnF" ​/
-      <​activity android:​name="​com.yzx.im_UIdemo.IMMessageInfoActivity" > +        <!--百度的远程服务--> 
-      </activity+        <service 
-      <activity ​android:​name="​com.yzx.im_UIdemo.IMMessageBgActivity" > +            ​android:​name="​com.baidu.location.f" 
-      </​activity>​ +            android:​enabled="​true"​ 
-      <​activity android:​name="​com.yzx.im_UIdemo.IMSelectBgActivity" > +            android:​process=":​remote" /> 
-      </activity>​ +        <activity 
-      <​activity android:​name="​com.yzx.im_UIdemo.IMFriendListActivity" > +            ​android:​name="​com.yzx.im_UIdemo.IMChatActivity"​ 
-      </activity>​ +            android:​screenOrientation="​portrait" /> 
-      <​activity android:​name="​com.yzx.im_UIdemo.IMDiscussListActivity" ​+        <activity android:​name="​com.yzx.im_UIdemo.IMMessageActivity"​ android:​windowSoftInputMode="​stateHidden|adjustResize"​/> 
-      </activity+        <​activity 
-      <​activity android:​name="​com.yzx.im_UIdemo.IMDiscussInfoActivity" ​+            ​android:​name="​com.yzx.im_UIdemo.IMCustomMsgActivity"​ 
-      </activity+            android:​configChanges="​keyboardHidden|orientation|screenSize"​ 
-      <​activity android:​name="​com.yzx.im_UIdemo.IMGroupListActivity" ​+            android:​screenOrientation="​portrait"​ 
-      </activity+            android:​windowSoftInputMode="​stateHidden|adjustResize"​ /> 
- <​activity android:​name="​com.yzx.im_UIdemo.IMImageActivity" ​+        <​activity 
-      </activity+            android:​name="​com.yzx.im_UIdemo.IMBaiduMapActivity
-       +            android:​screenOrientation="​portrait"​ 
- <service android:​name="​com.yzxtcp.service.YzxIMCoreService" ​+            ​android:​theme="​@android:​style/​Theme.Light.NoTitleBar" ​/> 
-      </service+        <​activity 
-       +            ​android:​name="​com.yzx.im_UIdemo.IMBroadcastActivity
-      ​<​receiver android:​name="​com.yzxtcp.tools.tcp.receiver.AlarmReceiver" ​+            ​android:​screenOrientation="​portrait" ​/> 
-    </receiver+        <​activity 
-    <​receiver android:​name="​com.yzxIM.tools.tcp.receiver.MsgBackReceiver"​ > +            ​android:​name="​com.yzx.im_UIdemo.IMLoginOutActivity"​ 
-    ​</​receiver>​ +            android:​screenOrientation="​portrait"​ 
-       +            android:​windowSoftInputMode="​stateHidden|adjustPan" > 
-  ​</​application>​+            <intent-filter>​ 
 +                <action android:​name="​android.intent.action.VIEW" ​/> 
 +                <category ​android:​name="​android.intent.category.DEFAULT"​ /> 
 +                <data 
 +                    android:​host="​com.yzx.im_ui" 
 +                    android:​pathPrefix="/​login_out"​ 
 +                    android:​scheme="​yzx"​ /
 +            </​intent-filter>​ 
 +        ​</​activity>​ 
 +        <​activity android:​name="​com.yzx.im_UIdemo.IMMessageInfoActivity" ​/
 +        <​activity ​android:​name="​com.yzx.im_UIdemo.IMMessageBgActivity"​ /
 +        <​activity android:​name="​com.yzx.im_UIdemo.IMSelectBgActivity" ​/
 +        <​activity ​android:​name="​com.yzx.im_UIdemo.IMFriendListActivity"​ /
 +        <​activity android:​name="​com.yzx.im_UIdemo.IMDiscussListActivity"​ /> 
 +        <​activity android:​name="​com.yzx.im_UIdemo.IMDiscussInfoActivity"​ /> 
 +        <​activity android:​name="​com.yzx.im_UIdemo.IMGroupListActivity"​ /> 
 +        <​activity android:​name="​com.yzx.im_UIdemo.IMImageActivity"​ /> 
 +        <service android:​name="​com.yzxtcp.service.YzxIMCoreService"​ /> 
 +        <​receiver android:​name="​com.yzxtcp.tools.tcp.receiver.AlarmReceiver"​ /> 
 +        <​receiver android:​name="​com.yzxIM.tools.tcp.receiver.MsgBackReceiver" ​/
 +    </​application>​
 ===== 三、IMKit快速集成 ===== ===== 三、IMKit快速集成 =====
 IMKit提供的接口都是在类UCS_IMUIManager中以静态函数的形式提供的,使用前需在相应文件中导入com.yzx.im_UIdemo.UCS_IMUIManager,代码为: ​ IMKit提供的接口都是在类UCS_IMUIManager中以静态函数的形式提供的,使用前需在相应文件中导入com.yzx.im_UIdemo.UCS_IMUIManager,代码为: ​
行 118: 行 139:
 ILoginListener listener = new ILoginListener() { ILoginListener listener = new ILoginListener() {
     @Override     @Override
-    public void onLogin(UcsReason ​arg0) {+    public void onLogin(UcsReason ​reason) {
         // TODO Auto-generated method stub         // TODO Auto-generated method stub
-        System.out.println("​登陆消息:"​ + arg0.getMsg());​ +        System.out.println("​登陆消息:"​ + reason.getMsg());​ 
-        if (arg0.getReason() == 0) {+        if (reason.getReason() == UcsErrorCode.NET_ERROR_CONNECTOK) {
             System.out.println("​登陆成功"​);​             System.out.println("​登陆成功"​);​
         } else {         } else {
行 156: 行 177:
   List<​SortModel>​ contacts = new ArrayList<​SortModel>​();​   List<​SortModel>​ contacts = new ArrayList<​SortModel>​();​
   SortModel sortModel = new SortModel();​   SortModel sortModel = new SortModel();​
-  sortModel.setName("​Jack"​);​ +  sortModel.setName("​Jack"​);​//​好友昵称 
-  sortModel.setId("​13428788888"​);​+  sortModel.setId("​13428788888"​);​//​好友ID 
 +  sortModel.setUrl("​头像URL"​);//​好友头像
   contacts.add(sortModel);​   contacts.add(sortModel);​
   UCS_IMUIManager.setFriendListContacts(contacts);​   UCS_IMUIManager.setFriendListContacts(contacts);​
行 191: 行 213:
 ==== 8、设置消息通知是否开启 ==== ==== 8、设置消息通知是否开启 ====
 设置通知栏消息(包括震动与声音)是否开启: 设置通知栏消息(包括震动与声音)是否开启:
-  static void setMsgNotification(Context context, boolean on)  +  static void setMsgNotification(Context context, String loalUser,boolean on); 
-传入参数包括上下文及布尔控制值,传入布尔值为true则开启,为false则不开启。 ​+传入参数包括上下文及布尔控制值,loalUser当前用户ID,​ on传入布尔值为true则开启,为false则不开启。 ​ 
 + 
 + 
 +====9、集成注意事项 ==== 
 +1,​如果使用地图功能时报错误 ​ **"​请检查key,​baiduSDK认证错误!"​** 
 +  需要用户在AndroidManifest.xml文件中修改 
 +  <​meta-data 
 +            android:​name="​com.baidu.lbsapi.API_KEY"​ 
 +            android:​value="​用户在百度申请的KEY"​ /> 
  

页面工具