diff --git a/app/src/main/java/com/mogo/cloud/SPIRealTimeTestClass.java b/app/src/main/java/com/mogo/cloud/SPIRealTimeTestClass.java index 38fff16..ec37e58 100644 --- a/app/src/main/java/com/mogo/cloud/SPIRealTimeTestClass.java +++ b/app/src/main/java/com/mogo/cloud/SPIRealTimeTestClass.java @@ -46,4 +46,9 @@ class SPIRealTimeTestClass implements IRealTimeProvider { list.add(info); return list; } + + @Override + public int getLocationAccuracy() { + return 0; + } } diff --git a/modules/mogo-realtime/src/main/java/com/mogo/realtime/api/IRealTimeProvider.java b/modules/mogo-realtime/src/main/java/com/mogo/realtime/api/IRealTimeProvider.java index 47b9f43..5f2f3c0 100644 --- a/modules/mogo-realtime/src/main/java/com/mogo/realtime/api/IRealTimeProvider.java +++ b/modules/mogo-realtime/src/main/java/com/mogo/realtime/api/IRealTimeProvider.java @@ -16,8 +16,13 @@ public interface IRealTimeProvider { List getLastADASRecognizedResult(); /** - * 发送消息,由外部传入 + * 发送自车定位信息,由外部传入 */ List getLocationMsg(); + /** + * 自车定位信息 精度 + * @see com.mogo.realtime.entity.LocationResult dataAccuracy 字段 + */ + int getLocationAccuracy(); } diff --git a/modules/mogo-realtime/src/main/java/com/mogo/realtime/socket/SocketHandler.java b/modules/mogo-realtime/src/main/java/com/mogo/realtime/socket/SocketHandler.java index 0918bde..89ff4a0 100644 --- a/modules/mogo-realtime/src/main/java/com/mogo/realtime/socket/SocketHandler.java +++ b/modules/mogo-realtime/src/main/java/com/mogo/realtime/socket/SocketHandler.java @@ -154,15 +154,8 @@ public class SocketHandler { } locationResult.coordinates = new ArrayList<>(); locationResult.sn = MoGoAiCloudClient.getInstance().getAiCloudClientConfig().getSn(); - boolean isAccuracyDevice = MoGoAiCloudClient.getInstance().getAiCloudClientConfig().getIsAccuracyDevice(); locationResult.coordinates.addAll(cloudLocationInfo); - if (isAccuracyDevice) { - if (cloudLocationInfo.size() > 2) { - locationResult.dataAccuracy = 1; - } else { - Logger.w(TAG, "MoGoAiCloudClient setAccuracyDevice is true , but the amount of data does not meet the requirements"); - } - } + locationResult.dataAccuracy = RealTimeProviderImp.getInstance().getLocationAccuracy();//SPI接口返回 } List recognizedResults = RealTimeProviderImp.getInstance().getLastADASRecognizedResult();//SPI接口返回 OnePerSecondSendContent content = new OnePerSecondSendContent(); @@ -182,8 +175,9 @@ public class SocketHandler { webSocketData.setData(GsonUtil.jsonFromObject(content)); String msg = GsonUtil.jsonFromObject(webSocketData); + boolean isAccuracyDevice = MoGoAiCloudClient.getInstance().getAiCloudClientConfig().getIsAccuracyDevice(); int msgType = LOW_FREQUENCY_CHANNEL_ID; - if (cloudLocationInfo.size() > 2) { + if (isAccuracyDevice && cloudLocationInfo.size() > 2) { msgType = HIGH_FREQUENCY_CHANNEL_ID; } MsgBody msgBody = new MsgBody(); diff --git a/modules/mogo-realtime/src/main/java/com/mogo/realtime/spi/RealTimeProviderImp.java b/modules/mogo-realtime/src/main/java/com/mogo/realtime/spi/RealTimeProviderImp.java index bf89510..5e4f66e 100644 --- a/modules/mogo-realtime/src/main/java/com/mogo/realtime/spi/RealTimeProviderImp.java +++ b/modules/mogo-realtime/src/main/java/com/mogo/realtime/spi/RealTimeProviderImp.java @@ -45,4 +45,12 @@ public class RealTimeProviderImp implements IRealTimeProvider { return null; } + @Override + public int getLocationAccuracy() { + if (mDelegate != null) { + return mDelegate.getLocationAccuracy(); + } + return 0; + } + }