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