开发向导

这是为开发者使用A-SDK的过程指引,你可根据需要跳转到相应的步骤查看。

 

环境准备

1.JAVA环境准备

最低需求JDK1.6,推荐使用JDK1.7及以上的编译环境;

2.开发工具准备

Eclipse或AndroidStudio(注:本文demo所使用的IDE为AndroidStudio V2.2.2)  

SDK集成

1.SDK下载

点击此处下载最新的A-SDK开发工具包。

2.将A-SDK导入已搭建的Android工程

①.如果你使用的是Eclipse开发,直接将下载的jar包拷贝到src的libs目录下即可。

②.如果你使用的是Android Studio开发,拷贝到app/src/libs(若此目录下没有libs目录请自行创建),注意要将libs下的jar包添加依赖,可在build.gradle手动添加,也可以右键jar包,选择Add as library。

至此即可使用A-SDK提供的相关接口实现与ET-Link服务器的连接。

3.配置权限

要使用A-SDK还需要在Android.manifest配置相关权限,如下

<!--网络访问权限-->
<uses-permission android:name="android.permission.INTERNET" />
<!--wifi状态-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!--文件读写权限-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!--网络状态权限-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

 

使用A-SDK接口

1.注册新用户

在使用A-SDK的其它功能之前,首先需要注册一个用户(或者通过Web管理页面分配账号),使用SDKContextManager注册一个新用户,注册之前需要向平台申请AppKey, SecretKey,注册新用户示例代码:

SDKContextManager.addUser(userName,nickname,serverAdd, port, 
AppKey,SecretKey,new IFriendsActionListener() {

@Override
public void onSuccess() {
// 该方法不会调用
}

@Override
public void onFailure(final ErrorInfo e) {
// 注册用户失败   
}

@Override
public void onResultData(final Object arg0) {
UserInfo userInfo = (UserInfo) arg0;
// 注册用户成功 返回userInfo
userInfo.getUserid()); //登陆时用到的uid
}
});
}

2.初始化ISDKContext

SDKContext上下文定义了SDK的所有操作,使用SDKContextManager的createContext(SDKContextParameters parameters)方法来创建ISDKContext实例,代码示例:

SDKContextParameters sdkContextParameters = new SDKContextParameters();
sdkContextParameters.setUid(userId);
sdkContextParameters.setAppKey(your appkey);
sdkContextParameters.setSecretKey(your SecretKey );
sdkContextParameters.setBlanceServerAddress(服务器地址);
sdkContextParameters.setBlanceServerPort(服务器端口号);
sdkContext = SDKContextManager.createContext(sdkContextParameters);

3.创建全局回调

使用ISDKContext的setCallback方法设置ISDKContextCallback全局回调(包括消息回调和事件回调),代码示例:

sdkContext.setCallback(new ISDKContextCallback() {
@Override
public void onMessage(MessageType type, String topic, Message msg) {
//收到消息
}

@Override
public void onPeerState(String uid, String statusCode) {
//订阅的用户状态改变
}

@Override
public void onFileReceived(String senderId, DocumentInfo documentInfo) {
//收到文件
}

@Override
public void onBroken(Server svr, int errorCode, String reason) {
//服务器断开连接
}

@Override
public void onServer(Server svr) {
//搜索到可用服务器
}
});

4.发现服务器

使用SDK的discoverServers搜索可用服务器。示例代码:

 sdkContext.discoverServers(10, new IActionListener() {
@Override
public void onSuccess() {
// 正在扫描服务器,
// 扫描到的服务器通过sdk全局回调onServer(Server sr)返回。
}

@Override
public void onFailure(ErrorInfo errorInfo) {
// 扫描服务器失败
}
});

5.连接服务器

搜索到可用服务器后,服务器通过全局的onServer()回调返回一个服务器,用于连接,连接服务器时,需要通过ConnectOptions设置连接参数,然后使用ISDKContext的connect方法连接到指定的服务器,示例代码:

ConnectOptions connectOptions = new ConnectOptions(); // 连接参数
connectOptions.setConnectionTimeout(10); // 连接超时时间
connectOptions.setKeepAliveInterval((short) 60); // 与服务器的保活时间间隔
// svr为discover发现到的可用服务器
sdkContext.connect(svr, connectOptions, new IActionListener() {

@Override
public void onSuccess() {
// 连接ET-Link服务器成功
}

@Override
public void onFailure(ErrorInfo errorInfo) {
// 连接ET-Link服务器失败
}
});

6.发送点对点消息 连接服务器成功以后,可以正常使用A-SDK提供的所有接口,这里以chatto为例,说明如何使用(若成功则接收方UID会在onMessage回调中收到一条消息),示例代码:

sdkContext.chatTo(接收方UID, message, new IActionListener() {

@Override
public void onSuccess() {
// 代表消息成功发送到服务器,不表示接收方已经收到消息。
}

@Override
public void onFailure(final ErrorInfo errorInfo) {
// 发送失败
}
});

 

完整示例

点击查看 基础示例(发送点对点消息)