增加 根据服务端下发的上报时间,重置本地轮询上报时间间隔
This commit is contained in:
1
.idea/gradle.xml
generated
1
.idea/gradle.xml
generated
@@ -88,7 +88,6 @@
|
||||
</set>
|
||||
</option>
|
||||
<option name="resolveModulePerSourceSet" value="false" />
|
||||
<option name="useQualifiedModuleNames" value="true" />
|
||||
</GradleProjectSettings>
|
||||
</option>
|
||||
</component>
|
||||
|
||||
@@ -14,6 +14,8 @@ public class WebSocketData implements Serializable {
|
||||
|
||||
private long utcTime;
|
||||
|
||||
private long upUtcTime;
|
||||
|
||||
public long getSeq() {
|
||||
return seq;
|
||||
}
|
||||
@@ -53,4 +55,12 @@ public class WebSocketData implements Serializable {
|
||||
public void setUtcTime(long utcTime) {
|
||||
this.utcTime = utcTime;
|
||||
}
|
||||
|
||||
public long getUpUtcTime() {
|
||||
return upUtcTime;
|
||||
}
|
||||
|
||||
public void setUpUtcTime(long upUtcTime) {
|
||||
this.upUtcTime = upUtcTime;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import androidx.annotation.Keep;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.mogo.commons.network.Utils;
|
||||
import com.mogo.module.common.MogoApisHandler;
|
||||
import com.mogo.service.connection.IMogoMsgAckListener;
|
||||
import com.mogo.service.connection.IMogoOnWebSocketMessageListener;
|
||||
import com.mogo.service.connection.IMogoWebSocketManager;
|
||||
@@ -202,7 +203,14 @@ public class WebSocketManager implements IMogoWebSocketManager, ISocketMsgSettin
|
||||
serverTime = webSocketData.getUtcTime();
|
||||
receiveMsgTime = SystemClock.elapsedRealtime();
|
||||
Logger.d(TAG, "设置serverTime");
|
||||
if (webSocketData.getUpUtcTime() > 0) {
|
||||
long nextDelay = webSocketData.getUpUtcTime() - serverTime;
|
||||
MogoApisHandler.getInstance().getApis().getRefreshStrategyControllerApi().resetLocationUpDelay(nextDelay);
|
||||
Logger.d(TAG, "重置下次上报时机: " + nextDelay);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -45,8 +45,8 @@ public class MogoRTKLocation {
|
||||
public void handleMessage(Message msg) {
|
||||
super.handleMessage(msg);
|
||||
if (msg.what == MSG_DATA_CHANGED) {
|
||||
sendLocationData();
|
||||
mHandler.sendEmptyMessageDelayed(MSG_DATA_CHANGED, uploadDelay);
|
||||
sendLocationData();
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -159,4 +159,15 @@ public class MogoRTKLocation {
|
||||
uploadDelay = intent.getIntExtra("fixTime", 0);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 默认保持{@link #uploadDelay}间隔进行位置上报,如遇服务端控制,进行上报间隔修改
|
||||
* @param delay 上报间隔
|
||||
*/
|
||||
public void resetUploadDelay(long delay) {
|
||||
if (mHandler != null && mHandler.hasMessages(MSG_DATA_CHANGED)) {
|
||||
mHandler.removeMessages(MSG_DATA_CHANGED);
|
||||
mHandler.sendEmptyMessageDelayed(MSG_DATA_CHANGED, delay);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import android.content.Context;
|
||||
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.mogo.module.service.MogoServices;
|
||||
import com.mogo.module.service.location.MogoRTKLocation;
|
||||
import com.mogo.service.MogoServicePaths;
|
||||
import com.mogo.service.strategy.IMogoRefreshStrategyController;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
@@ -33,6 +34,11 @@ public class MogoRefreshStrategyController implements IMogoRefreshStrategyContro
|
||||
MogoServices.getInstance().clearAllData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resetLocationUpDelay(long delay) {
|
||||
MogoRTKLocation.getInstance().resetUploadDelay(delay);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init( Context context ) {
|
||||
|
||||
|
||||
@@ -21,4 +21,10 @@ public interface IMogoRefreshStrategyController extends IProvider {
|
||||
* 清除所有数据
|
||||
*/
|
||||
void clearAllData();
|
||||
|
||||
/**
|
||||
* 重新设置定位点上报时间间隔
|
||||
* @param delay 新的时间间隔
|
||||
*/
|
||||
void resetLocationUpDelay(long delay);
|
||||
}
|
||||
Reference in New Issue
Block a user