diff --git a/cim-client-sdk/cim-android-sdk/pom.xml b/cim-client-sdk/cim-android-sdk/pom.xml
index 92b5088..8a4da9e 100755
--- a/cim-client-sdk/cim-android-sdk/pom.xml
+++ b/cim-client-sdk/cim-android-sdk/pom.xml
@@ -6,7 +6,7 @@
com.farsunset
cim-android-sdk
- 3.8.0
+ 3.8.1
jar
@@ -14,7 +14,6 @@
UTF-8
1.8
3.0.1
- 4.1.44.Final
diff --git a/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/CIMCacheManager.java b/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/CIMCacheManager.java
index 9ae4681..4876a14 100644
--- a/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/CIMCacheManager.java
+++ b/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/CIMCacheManager.java
@@ -62,11 +62,13 @@ class CIMCacheManager {
}
public static String getString(Context context, String key) {
- String value = null;
+ String value;
ContentResolver resolver = context.getContentResolver();
Cursor cursor = resolver.query(Uri.parse(String.format(CONTENT_URI, context.getPackageName())), new String[]{key}, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
value = cursor.getString(0);
+ }else {
+ value = null;
}
closeQuietly(cursor);
return value;
diff --git a/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/CIMConnectorManager.java b/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/CIMConnectorManager.java
index d4df1ba..3214710 100644
--- a/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/CIMConnectorManager.java
+++ b/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/CIMConnectorManager.java
@@ -173,10 +173,10 @@ class CIMConnectorManager {
}
public void sendHeartbeat() {
- send(HeartbeatResponse.getInstance());
+ send(Pong.getInstance());
}
- public void send(final Protobufable body) {
+ public void send(final BinaryBody body) {
if (!isConnected()) {
return;
@@ -313,8 +313,8 @@ class CIMConnectorManager {
LOGGER.messageReceived(socketChannel, message);
- if (message instanceof HeartbeatRequest) {
- send(HeartbeatResponse.getInstance());
+ if (message instanceof Ping) {
+ send(Pong.getInstance());
return;
}
diff --git a/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/CIMPushManager.java b/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/CIMPushManager.java
index 561033e..04c8f08 100644
--- a/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/CIMPushManager.java
+++ b/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/CIMPushManager.java
@@ -56,6 +56,8 @@ public class CIMPushManager {
protected static final String ACTION_HIDE_PERSIST_NOTIFICATION = "ACTION_HIDE_PERSIST_NOTIFICATION";
+ protected static final String ACTION_SEND_PONG = "ACTION_SEND_PONG";
+
/**
* 初始化,连接服务端,在程序启动页或者 在Application里调用
*/
@@ -117,6 +119,12 @@ public class CIMPushManager {
}
+ public static void pong(Context context) {
+ Intent serviceIntent = new Intent(context, CIMPushService.class);
+ serviceIntent.setAction(ACTION_SEND_PONG);
+ startService(context, serviceIntent);
+ }
+
private static void sendBindRequest(Context context, String account) {
CIMCacheManager.putBoolean(context, CIMCacheManager.KEY_MANUAL_STOP, false);
@@ -256,7 +264,7 @@ public class CIMPushManager {
return currDeviceId;
}
- String deviceId = UUID.randomUUID().toString().replaceAll("-", "").toUpperCase();
+ String deviceId = UUID.randomUUID().toString().replace("-", "").toUpperCase();
CIMCacheManager.putString(context, CIMCacheManager.KEY_DEVICE_ID, deviceId);
diff --git a/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/CIMPushService.java b/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/CIMPushService.java
index 696807d..599d305 100644
--- a/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/CIMPushService.java
+++ b/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/CIMPushService.java
@@ -34,6 +34,7 @@ import android.os.IBinder;
import android.util.Log;
import com.farsunset.cim.sdk.android.constant.CIMConstant;
import com.farsunset.cim.sdk.android.logger.CIMLogger;
+import com.farsunset.cim.sdk.android.model.Pong;
import com.farsunset.cim.sdk.android.model.SentBody;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -146,6 +147,10 @@ public class CIMPushService extends Service {
handleKeepAlive();
}
+ if (CIMPushManager.ACTION_SEND_PONG.equals(action)) {
+ connectorManager.send(Pong.getInstance());
+ }
+
if (CIMPushManager.ACTION_SET_LOGGER_EATABLE.equals(action)) {
boolean enable = intent.getBooleanExtra(KEY_LOGGER_ENABLE, true);
CIMLogger.getLogger().debugMode(enable);
diff --git a/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/coder/ClientMessageDecoder.java b/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/coder/ClientMessageDecoder.java
index 8e18b7e..1977dc4 100644
--- a/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/coder/ClientMessageDecoder.java
+++ b/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/coder/ClientMessageDecoder.java
@@ -23,7 +23,7 @@ package com.farsunset.cim.sdk.android.coder;
import com.farsunset.cim.sdk.android.constant.CIMConstant;
-import com.farsunset.cim.sdk.android.model.HeartbeatRequest;
+import com.farsunset.cim.sdk.android.model.Ping;
import com.farsunset.cim.sdk.android.model.Message;
import com.farsunset.cim.sdk.android.model.ReplyBody;
import com.farsunset.cim.sdk.android.model.proto.MessageProto;
@@ -73,7 +73,7 @@ public class ClientMessageDecoder {
消息读取完成后,通过type来解析成对应的消息体
*/
if (CIMConstant.ProtobufType.S_H_RQ == type) {
- return HeartbeatRequest.getInstance();
+ return Ping.getInstance();
}
if (CIMConstant.ProtobufType.REPLY_BODY == type) {
diff --git a/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/coder/ClientMessageEncoder.java b/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/coder/ClientMessageEncoder.java
index fc0c6e6..7b95a1b 100644
--- a/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/coder/ClientMessageEncoder.java
+++ b/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/coder/ClientMessageEncoder.java
@@ -22,14 +22,13 @@
package com.farsunset.cim.sdk.android.coder;
import com.farsunset.cim.sdk.android.constant.CIMConstant;
-import com.farsunset.cim.sdk.android.model.Protobufable;
-import com.farsunset.cim.sdk.android.model.SentBody;
+import com.farsunset.cim.sdk.android.model.BinaryBody;
import java.nio.ByteBuffer;
public class ClientMessageEncoder {
- public ByteBuffer encode(Protobufable body) {
+ public ByteBuffer encode(BinaryBody body) {
byte[] data = body.getByteArray();
diff --git a/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/model/Protobufable.java b/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/model/BinaryBody.java
similarity index 97%
rename from cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/model/Protobufable.java
rename to cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/model/BinaryBody.java
index 81ac373..4e3eaa6 100644
--- a/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/model/Protobufable.java
+++ b/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/model/BinaryBody.java
@@ -24,7 +24,7 @@ package com.farsunset.cim.sdk.android.model;
/**
* 需要向另一端发送的结构体
*/
-public interface Protobufable {
+public interface BinaryBody {
byte[] getByteArray();
diff --git a/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/model/HeartbeatRequest.java b/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/model/Ping.java
similarity index 88%
rename from cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/model/HeartbeatRequest.java
rename to cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/model/Ping.java
index 3a52724..7a25df6 100644
--- a/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/model/HeartbeatRequest.java
+++ b/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/model/Ping.java
@@ -28,19 +28,19 @@ import java.io.Serializable;
/**
* 服务端心跳请求
*/
-public class HeartbeatRequest implements Serializable, Protobufable {
+public class Ping implements Serializable, BinaryBody {
private static final long serialVersionUID = 1L;
private static final String TAG = "SERVER_HEARTBEAT_REQUEST";
private static final String CMD_HEARTBEAT_REQUEST = "SR";
- private static final HeartbeatRequest object = new HeartbeatRequest();
+ private static final Ping object = new Ping();
- private HeartbeatRequest() {
+ private Ping() {
}
- public static HeartbeatRequest getInstance() {
+ public static Ping getInstance() {
return object;
}
diff --git a/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/model/HeartbeatResponse.java b/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/model/Pong.java
similarity index 88%
rename from cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/model/HeartbeatResponse.java
rename to cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/model/Pong.java
index 5c49100..96f7ca4 100644
--- a/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/model/HeartbeatResponse.java
+++ b/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/model/Pong.java
@@ -28,19 +28,19 @@ import java.io.Serializable;
/**
* 客户端心跳响应
*/
-public class HeartbeatResponse implements Serializable, Protobufable {
+public class Pong implements Serializable, BinaryBody {
private static final long serialVersionUID = 1L;
private static final String TAG = "CLIENT_HEARTBEAT_RESPONSE";
private static final String CMD_HEARTBEAT_RESPONSE = "CR";
- private static final HeartbeatResponse object = new HeartbeatResponse();
+ private static final Pong object = new Pong();
- private HeartbeatResponse() {
+ private Pong() {
}
- public static HeartbeatResponse getInstance() {
+ public static Pong getInstance() {
return object;
}
diff --git a/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/model/SentBody.java b/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/model/SentBody.java
index 1ef7569..ce1f247 100644
--- a/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/model/SentBody.java
+++ b/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/model/SentBody.java
@@ -31,7 +31,7 @@ import java.util.Set;
/**
* java |android 客户端请求结构
*/
-public class SentBody implements Serializable, Protobufable {
+public class SentBody implements Serializable, BinaryBody {
private static final long serialVersionUID = 1L;
diff --git a/doc/发送消息接口文档.doc b/doc/发送消息接口文档.doc
index 4f0f1d9..98207c8 100644
Binary files a/doc/发送消息接口文档.doc and b/doc/发送消息接口文档.doc differ