这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 | 后一修订版 两侧同时换到之后的修订记录 | ||
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" /> | ||