インスタントコミュニケーションSDK IMSDK使用心得


imsdkは本当に便利で柔軟だと言わざるを得ませんが、愛萌提供サーバーは、与えられたsdkの方法はnewスレッドを呼び出す必要もなく、インポートするsoファイルもjarパッケージも特に少なく、Android Menefestにコンポーネントを追加する必要もなく、登録するときにパッケージ名をアップロードすればいいので、sha 1をアップロードする必要もありません.使用回数もほとんど制限されず、このようなsdkを見つけて花を咲かせた.そこでChatUtilパッケージのいくつかの一般的な方法を書きました
まずはactivityで初期化しておきます
IMSDK.init(getApplicationContext(), "     appKey"); 

次は一般的な方法のパッケージです

import java.util.ArrayList;
import java.util.List;


import imsdk.data.IMMyself;
import imsdk.data.IMMyself.OnActionListener;
import imsdk.data.IMMyself.OnReceiveTextListener;
import imsdk.data.localchatmessagehistory.IMChatMessage;
import imsdk.data.localchatmessagehistory.IMMyselfLocalChatMessageHistory;
import imsdk.data.recentcontacts.IMMyselfRecentContacts;


public class ChatUtils {
	/**
	 *        ,     ,    
	 * @param username
	 * @return
	 */
	public  static void InitChat(String username){
		//   、   ,    customUserID password
				IMMyself.setCustomUserID(username);//       app       ,   app                  ,       
				IMMyself.setPassword("123456");
				System.out.println("     ");
//				           30 
				IMMyself.register(30, new OnActionListener() {
				    @Override
				    public void onSuccess() {
				       System.out.println("        ");
				       login();
				    }
				 
				    @Override
				    public void onFailure(String error) {//               ,           ,          
				        if (error.equals("Timeout")) {
				            error = "     ";
				        }
				        //error          
				       System.out.println("    "+error);
				       login();//               ,            
				    }
				});
				
	}
	
	
	/**
	 *       
	 */
	public static void login(){
		//           5 
				IMMyself.login(false, 5, new OnActionListener() {
				    @Override
				    public void onSuccess() {
				    	System.out.println("    ");
                                        long unreadMsgCount = IMMyselfRecentContacts.getUnreadChatMessageCount();
				    	System.out.println("      "+unreadMsgCount);
				    	//         
				    	IMMyself.setOnReceiveTextListener(new OnReceiveTextListener() {
						    //              
						    @Override
						    public void onReceiveText(String text, String fromCustomUserID, long serverActionTime) {
						        System.out.println("    "+fromCustomUserID);
						    	System.out.println("   "+text);
                                                     //          ,                 
                                                       }
						 
						    //       
						    @Override
						    public void onReceiveSystemText(String text, long serverActionTime) {
						    	System.out.println("      "+text);
						    }
						});
				    	
				    	/**
						 *             
						 */
				    }

					@Override
					public void onFailure(String arg0) {
						// TODO Auto-generated method stub
						System.out.println("    ");
						 /**
				         *               
				         */
					}
					
				});
	}
	/**
     *           
     * @param receiver        
     * @param content      
     */
	public void sendMessage(String receiver,String content){
		IMMyself.sendText(content, receiver, 2000, new OnActionListener() {
		    @Override
		    public void onSuccess() {
		    	System.out.println("    ");
		    	/**
		    	 *               
		    	 */
		    }
		 
		    @Override
		    public void onFailure(String error) {
		    	System.out.println("    ");
		    	/**
		    	 *              
		    	 */
		    }
		});
	}
	
	/**
	 *           
	 * @param partner    
	 * @return
	 */
	public static List<IMChatMessage> getHistory(String partner){
		//                
		// index=0,          
		List<IMChatMessage> list = new ArrayList<IMChatMessage>();
		IMChatMessage chatMsg = IMMyselfLocalChatMessageHistory.getChatMessage(partner, 0);
		long count = IMMyselfLocalChatMessageHistory.getChatMessageCount(partner);
		for (int i = 0; i < count; i++) {
			list.add(IMMyselfLocalChatMessageHistory.getChatMessage(partner, i));
		}
		return list;
	}
	
}