「Fix 」

1、删除自定义DNS。对网络请求TryCatch
This commit is contained in:
xyz
2025-01-03 17:13:46 +08:00
parent b85a55e522
commit ec17b6d633
7 changed files with 215 additions and 209 deletions

View File

@@ -59,42 +59,46 @@ public class RequestLiveManager {
* @param requestLiveListener {@link IRequestLiveListener} * @param requestLiveListener {@link IRequestLiveListener}
*/ */
public void requestDesignativeVehicleLive(String type, String liveSn, IRequestLiveListener requestLiveListener) { public void requestDesignativeVehicleLive(String type, String liveSn, IRequestLiveListener requestLiveListener) {
Gson gson = new Gson(); try {
LivePush livePush = new LivePush(liveSn, type, FRONT_CAMERA); Gson gson = new Gson();
String sn = MoGoAiCloudClient.getInstance().getAiCloudClientConfig().getSn(); LivePush livePush = new LivePush(liveSn, type, FRONT_CAMERA);
Map<String, String> map = new HashMap<>(); String sn = MoGoAiCloudClient.getInstance().getAiCloudClientConfig().getSn();
map.put("sn", sn); Map<String, String> map = new HashMap<>();
map.put("data", gson.toJson(livePush)); map.put("sn", sn);
liveApiServer.getDesignativeVehicleLive(map) map.put("data", gson.toJson(livePush));
.subscribeOn(Schedulers.io()) liveApiServer.getDesignativeVehicleLive(map)
.observeOn(AndroidSchedulers.mainThread()) .subscribeOn(Schedulers.io())
.subscribe(new Observer<BaseData>() { .observeOn(AndroidSchedulers.mainThread())
@Override .subscribe(new Observer<BaseData>() {
public void onSubscribe(@NonNull Disposable d) { @Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull BaseData baseData) {
}
@Override
public void onError(@NonNull Throwable e) {
if (requestLiveListener != null) {
requestLiveListener.onError(e);
} }
Log.e(LiveConstant.TAG, "requestDesignativeVehicleLive exception : " + e);
}
@Override @Override
public void onComplete() { public void onNext(@NonNull BaseData baseData) {
} }
});
if (requestLiveListener != null) { @Override
requestLiveListener.onSuccess(); public void onError(@NonNull Throwable e) {
if (requestLiveListener != null) {
requestLiveListener.onError(e);
}
Log.e(LiveConstant.TAG, "requestDesignativeVehicleLive exception : " + e);
}
@Override
public void onComplete() {
}
});
if (requestLiveListener != null) {
requestLiveListener.onSuccess();
}
} catch (Exception e) {
e.printStackTrace();
} }
} }
@@ -107,48 +111,52 @@ public class RequestLiveManager {
* @param requestLiveListener {@link IRequestLiveListener} * @param requestLiveListener {@link IRequestLiveListener}
*/ */
public void requestFrontVehicleLive(double lat, double lon, int bearing, IRequestLiveListener requestLiveListener) { public void requestFrontVehicleLive(double lat, double lon, int bearing, IRequestLiveListener requestLiveListener) {
Gson gson = new Gson(); try {
String sn = MoGoAiCloudClient.getInstance().getAiCloudClientConfig().getSn(); Gson gson = new Gson();
LivePush livePush = new LivePush(sn, FRONT_CAMERA, lat, lon, bearing); String sn = MoGoAiCloudClient.getInstance().getAiCloudClientConfig().getSn();
Map<String, String> map = new HashMap<>(); LivePush livePush = new LivePush(sn, FRONT_CAMERA, lat, lon, bearing);
map.put("sn", sn); Map<String, String> map = new HashMap<>();
map.put("data", gson.toJson(livePush)); map.put("sn", sn);
liveApiServer.getFrontVehicleLive(map) map.put("data", gson.toJson(livePush));
.subscribeOn(Schedulers.io()) liveApiServer.getFrontVehicleLive(map)
.observeOn(AndroidSchedulers.mainThread()) .subscribeOn(Schedulers.io())
.subscribe(new Observer<BaseData<LiveReceive>>() { .observeOn(AndroidSchedulers.mainThread())
@Override .subscribe(new Observer<BaseData<LiveReceive>>() {
public void onSubscribe(@NonNull Disposable d) { @Override
public void onSubscribe(@NonNull Disposable d) {
} }
@Override @Override
public void onNext(@NonNull BaseData<LiveReceive> baseData) { public void onNext(@NonNull BaseData<LiveReceive> baseData) {
if (requestLiveListener != null && baseData != null) { if (requestLiveListener != null && baseData != null) {
LiveReceive liveReceive = baseData.result; LiveReceive liveReceive = baseData.result;
if (liveReceive != null && liveReceive.getSn() != null) { if (liveReceive != null && liveReceive.getSn() != null) {
requestLiveListener.onSuccess(liveReceive.getSn(), liveReceive.getLat(), liveReceive.getLon()); requestLiveListener.onSuccess(liveReceive.getSn(), liveReceive.getLat(), liveReceive.getLon());
} else {
requestLiveListener.onError(new Throwable("前方暂无可直播车机"));
}
} else { } else {
requestLiveListener.onError(new Throwable("前方暂无可直播车机")); requestLiveListener.onError(new Throwable("前方暂无可直播车机"));
} }
} else {
requestLiveListener.onError(new Throwable("前方暂无可直播车机"));
} }
}
@Override @Override
public void onError(@NonNull Throwable e) { public void onError(@NonNull Throwable e) {
if (requestLiveListener != null) { if (requestLiveListener != null) {
requestLiveListener.onError(e); requestLiveListener.onError(e);
}
Log.e(LiveConstant.TAG, "requestFrontVehicleLive exception : " + e);
} }
Log.e(LiveConstant.TAG, "requestFrontVehicleLive exception : " + e);
}
@Override @Override
public void onComplete() { public void onComplete() {
} }
}); });
} catch (Exception e) {
e.printStackTrace();
}
} }
/** /**
@@ -160,48 +168,52 @@ public class RequestLiveManager {
* @param requestLiveListener {@link IRequestLiveListener} * @param requestLiveListener {@link IRequestLiveListener}
*/ */
public void requestFrontIntersectionLive(double lat, double lon, int bearing, IRequestLiveListener requestLiveListener) { public void requestFrontIntersectionLive(double lat, double lon, int bearing, IRequestLiveListener requestLiveListener) {
Gson gson = new Gson(); try {
String sn = MoGoAiCloudClient.getInstance().getAiCloudClientConfig().getSn(); Gson gson = new Gson();
LivePush livePush = new LivePush(sn, lat, lon, bearing); String sn = MoGoAiCloudClient.getInstance().getAiCloudClientConfig().getSn();
Map<String, String> map = new HashMap<>(); LivePush livePush = new LivePush(sn, lat, lon, bearing);
map.put("sn", sn); Map<String, String> map = new HashMap<>();
map.put("data", gson.toJson(livePush)); map.put("sn", sn);
liveApiServer.getFrontIntersectionLive(map) map.put("data", gson.toJson(livePush));
.subscribeOn(Schedulers.io()) liveApiServer.getFrontIntersectionLive(map)
.observeOn(AndroidSchedulers.mainThread()) .subscribeOn(Schedulers.io())
.subscribe(new Observer<BaseData<LiveReceive>>() { .observeOn(AndroidSchedulers.mainThread())
@Override .subscribe(new Observer<BaseData<LiveReceive>>() {
public void onSubscribe(@NonNull Disposable d) { @Override
public void onSubscribe(@NonNull Disposable d) {
} }
@Override @Override
public void onNext(@NonNull BaseData<LiveReceive> baseData) { public void onNext(@NonNull BaseData<LiveReceive> baseData) {
if (requestLiveListener != null && baseData != null) { if (requestLiveListener != null && baseData != null) {
LiveReceive liveReceive = baseData.result; LiveReceive liveReceive = baseData.result;
if (liveReceive != null && liveReceive.getLive() != null) { if (liveReceive != null && liveReceive.getLive() != null) {
requestLiveListener.onSuccess(liveReceive.getLive()); requestLiveListener.onSuccess(liveReceive.getLive());
} else {
requestLiveListener.onError(new Throwable("前方路口暂无可直播设备"));
}
} else { } else {
requestLiveListener.onError(new Throwable("前方路口暂无可直播设备")); requestLiveListener.onError(new Throwable("前方路口暂无可直播设备"));
} }
} else {
requestLiveListener.onError(new Throwable("前方路口暂无可直播设备"));
} }
}
@Override @Override
public void onError(@NonNull Throwable e) { public void onError(@NonNull Throwable e) {
if (requestLiveListener != null) { if (requestLiveListener != null) {
requestLiveListener.onError(e); requestLiveListener.onError(e);
}
Log.e(LiveConstant.TAG, "requestFrontIntersectionLive exception : " + e);
} }
Log.e(LiveConstant.TAG, "requestFrontIntersectionLive exception : " + e);
}
@Override @Override
public void onComplete() { public void onComplete() {
} }
}); });
} catch (Exception e) {
e.printStackTrace();
}
} }
/** /**
@@ -211,47 +223,51 @@ public class RequestLiveManager {
* @param requestLiveListener {@link IRequestLiveListener} * @param requestLiveListener {@link IRequestLiveListener}
*/ */
public void requestDesignativeIntersectionLive(String cameraId, IRequestLiveListener requestLiveListener) { public void requestDesignativeIntersectionLive(String cameraId, IRequestLiveListener requestLiveListener) {
Gson gson = new Gson(); try {
String sn = MoGoAiCloudClient.getInstance().getAiCloudClientConfig().getSn(); Gson gson = new Gson();
Map<String, Object> map = new HashMap<>(); String sn = MoGoAiCloudClient.getInstance().getAiCloudClientConfig().getSn();
map.put("unitSn", cameraId); Map<String, Object> map = new HashMap<>();
liveApiServer.getDesignativeIntersectionLive(map) map.put("unitSn", cameraId);
.subscribeOn(Schedulers.io()) liveApiServer.getDesignativeIntersectionLive(map)
.observeOn(AndroidSchedulers.mainThread()) .subscribeOn(Schedulers.io())
.subscribe(new Observer<BaseData<LiveCamera>>() { .observeOn(AndroidSchedulers.mainThread())
@Override .subscribe(new Observer<BaseData<LiveCamera>>() {
public void onSubscribe(@NonNull Disposable d) { @Override
public void onSubscribe(@NonNull Disposable d) {
} }
@Override @Override
public void onNext(@NonNull BaseData<LiveCamera> baseData) { public void onNext(@NonNull BaseData<LiveCamera> baseData) {
if (requestLiveListener != null && baseData != null) { if (requestLiveListener != null && baseData != null) {
LiveCamera liveData = baseData.result; LiveCamera liveData = baseData.result;
if (liveData == null || liveData.getCamera() == null || liveData.getCamera().getRtmpUrl() == null) { if (liveData == null || liveData.getCamera() == null || liveData.getCamera().getRtmpUrl() == null) {
requestLiveListener.onError(new Throwable("此路口摄像头暂无直播流"));
return;
}
Camera camera = liveData.getCamera();
requestLiveListener.onSuccess(camera.getRtmpUrl());
} else {
requestLiveListener.onError(new Throwable("此路口摄像头暂无直播流")); requestLiveListener.onError(new Throwable("此路口摄像头暂无直播流"));
return;
} }
Camera camera = liveData.getCamera();
requestLiveListener.onSuccess(camera.getRtmpUrl());
} else {
requestLiveListener.onError(new Throwable("此路口摄像头暂无直播流"));
} }
}
@Override @Override
public void onError(@NonNull Throwable e) { public void onError(@NonNull Throwable e) {
if (requestLiveListener != null) { if (requestLiveListener != null) {
requestLiveListener.onError(e); requestLiveListener.onError(e);
}
Log.e(LiveConstant.TAG, "requestDesignativeIntersectionLive exception : " + e);
} }
Log.e(LiveConstant.TAG, "requestDesignativeIntersectionLive exception : " + e);
}
@Override @Override
public void onComplete() { public void onComplete() {
} }
}); });
} catch (Exception e) {
e.printStackTrace();
}
} }
} }

View File

@@ -46,25 +46,7 @@ class OkHttpFactory private constructor() {
.writeTimeout(WRITE_TIMEOUT, TimeUnit.MILLISECONDS) .writeTimeout(WRITE_TIMEOUT, TimeUnit.MILLISECONDS)
.eventListenerFactory(WeakNetworkEventFactory.FACTORY) .eventListenerFactory(WeakNetworkEventFactory.FACTORY)
.dispatcher(dispatcher) .dispatcher(dispatcher)
// 可选:添加自定义 DNS 解析逻辑
.dns(CustomDns()) // 使用系统默认 DNS 或者自定义 Dns 实现
.build() .build()
} }
} }
class CustomDns : Dns {
override fun lookup(hostname: String): List<InetAddress> {
return try {
Log.d("CustomDns", "Lookup resolve host: $hostname")
// 使用默认的 DNS 解析逻辑
Dns.SYSTEM.lookup(hostname)
} catch (uhe: UnknownHostException) {
// 处理 UnknownHostException
// 在这里记录日志、通知用户或其他处理方式
Log.e("CustomDns", "Unable to resolve host: $hostname", uhe)
// 返回空列表表示无法解析
emptyList()
}
}
}
} }

View File

@@ -74,8 +74,12 @@ object V2XManager {
private val refreshTask = object : Runnable { private val refreshTask = object : Runnable {
override fun run() { override fun run() {
V2XRefreshModel.querySnapshot(longitude = this@V2XManager.realLongitude.get(), latitude = this@V2XManager.realLatitude.get(), refreshCallback) try {
handler.postDelayed(this, config.get().durationForTriggerRefresh) V2XRefreshModel.querySnapshot(longitude = this@V2XManager.realLongitude.get(), latitude = this@V2XManager.realLatitude.get(), refreshCallback)
handler.postDelayed(this, config.get().durationForTriggerRefresh)
} catch (e: Exception) {
e.printStackTrace()
}
} }
} }

View File

@@ -15,10 +15,6 @@ import com.mogo.v2x.utils.DeviceUtils
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers import io.reactivex.schedulers.Schedulers
import retrofit2.Retrofit
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory
import retrofit2.converter.gson.GsonConverterFactory
import java.util.concurrent.atomic.AtomicReference
internal class V2XRefreshModel { internal class V2XRefreshModel {

View File

@@ -33,30 +33,30 @@ SNAPSHOT_REPOSITORY_URL=http://nexus.zhidaoauto.com/repository/maven-snapshots/
USERNAME=xintai USERNAME=xintai
PASSWORD=xintai2018 PASSWORD=xintai2018
# 编译模式: false - 依赖本地版本, true - 依赖 maven 版本 # 编译模式: false - 依赖本地版本, true - 依赖 maven 版本
RELEASE=false RELEASE=true
# AI CLOUD 云平台 # AI CLOUD 云平台
# 工具类 # 工具类
MOGO_UTILS_VERSION=1.4.7.59 MOGO_UTILS_VERSION=1.4.7.62
# 网络请求 # 网络请求
MOGO_NETWORK_VERSION=1.4.7.59 MOGO_NETWORK_VERSION=1.4.7.62
# 鉴权 # 鉴权
MOGO_PASSPORT_VERSION=1.4.7.59 MOGO_PASSPORT_VERSION=1.4.7.62
# 常链接 # 常链接
MOGO_SOCKET_VERSION=1.4.7.59 MOGO_SOCKET_VERSION=1.4.7.62
# 数据采集 # 数据采集
MOGO_REALTIME_VERSION=1.4.7.59 MOGO_REALTIME_VERSION=1.4.7.62
# 探路,道路事件发布,获取 # 探路,道路事件发布,获取
MOGO_TANLU_VERSION=1.4.7.59 MOGO_TANLU_VERSION=1.4.7.62
# 直播推流 # 直播推流
MOGO_LIVE_VERSION=1.4.7.59 MOGO_LIVE_VERSION=1.4.7.62
# 直播拉流 # 直播拉流
MOGO_TRAFFICLIVE_VERSION=1.4.7.59 MOGO_TRAFFICLIVE_VERSION=1.4.7.62
# 定位服务 # 定位服务
MOGO_LOCATION_VERSION=1.4.7.59 MOGO_LOCATION_VERSION=1.4.7.62
# 远程通讯模块 # 远程通讯模块
MOGO_TELEMATIC_VERSION=1.4.7.59 MOGO_TELEMATIC_VERSION=1.4.7.62
# v2x # v2x
MOGO_V2X_VERSION=1.4.7.59 MOGO_V2X_VERSION=1.4.7.62
# SKIN # SKIN
MOGO_SKIN_VERSION=1.4.7.50 MOGO_SKIN_VERSION=1.4.7.50
# SDK # SDK
@@ -75,7 +75,7 @@ SONATYPE_HOST=S01
RELEASE_SIGNING_ENABLED=false RELEASE_SIGNING_ENABLED=false
# 组织名 # 组织名
GROUP=com.mogo.cloud GROUP=com.mogo.cloud
VERSION_NAME=1.4.7.59 VERSION_NAME=1.4.7.62
# 主页 # 主页
POM_URL=https://gitlab.zhidaoauto.com/SCA/L4HA/AndroidApp/support/countly-sdk-android POM_URL=https://gitlab.zhidaoauto.com/SCA/L4HA/AndroidApp/support/countly-sdk-android
# 版本控制信息 # 版本控制信息

View File

@@ -61,34 +61,38 @@ public class MogoRoadSearchManager {
* @param callback {@link IRoadInfoSearchCallback} * @param callback {@link IRoadInfoSearchCallback}
*/ */
public void queryRoadInfo(RoadInfoRequest roadInfoRequest, IRoadInfoSearchCallback callback) { public void queryRoadInfo(RoadInfoRequest roadInfoRequest, IRoadInfoSearchCallback callback) {
Map<String, Object> map = new HashMap<>(); try {
map.put("sn", MoGoAiCloudClient.getInstance().getAiCloudClientConfig().getSn()); Map<String, Object> map = new HashMap<>();
map.put("data", GsonUtil.jsonFromObject(roadInfoRequest)); map.put("sn", MoGoAiCloudClient.getInstance().getAiCloudClientConfig().getSn());
map.put("data", GsonUtil.jsonFromObject(roadInfoRequest));
apiService.queryRoadInfos(map) apiService.queryRoadInfos(map)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<BaseData<RoadInfos>>() { .subscribe(new Observer<BaseData<RoadInfos>>() {
@Override @Override
public void onSubscribe(@NonNull Disposable d) { public void onSubscribe(@NonNull Disposable d) {
} }
@Override @Override
public void onNext(@NonNull BaseData<RoadInfos> roadInfos) { public void onNext(@NonNull BaseData<RoadInfos> roadInfos) {
callback.onSuccess(roadInfos); callback.onSuccess(roadInfos);
} }
@Override @Override
public void onError(@NonNull Throwable e) { public void onError(@NonNull Throwable e) {
callback.onError(e); callback.onError(e);
} }
@Override @Override
public void onComplete() { public void onComplete() {
} }
}); });
} catch (Exception e) {
e.printStackTrace();
}
} }

View File

@@ -56,32 +56,36 @@ public class UploadManager {
* @param callback * @param callback
*/ */
public void loadUpload(InformationBody informationBody, ITanluUploadCallback callback) { public void loadUpload(InformationBody informationBody, ITanluUploadCallback callback) {
Gson gson = new Gson(); try {
Map<String, String> map = new HashMap<>(); Gson gson = new Gson();
map.put("sn", MoGoAiCloudClient.getInstance().getAiCloudClientConfig().getSn()); Map<String, String> map = new HashMap<>();
map.put("data", gson.toJson(informationBody)); map.put("sn", MoGoAiCloudClient.getInstance().getAiCloudClientConfig().getSn());
apiService.uploadInformation(map) map.put("data", gson.toJson(informationBody));
.subscribeOn(Schedulers.io()) apiService.uploadInformation(map)
.observeOn(AndroidSchedulers.mainThread()) .subscribeOn(Schedulers.io())
.subscribe(new Observer<BaseData<UploadResult>>() { .observeOn(AndroidSchedulers.mainThread())
@Override .subscribe(new Observer<BaseData<UploadResult>>() {
public void onSubscribe(Disposable d) { @Override
} public void onSubscribe(Disposable d) {
}
@Override @Override
public void onNext(BaseData<UploadResult> result) { public void onNext(BaseData<UploadResult> result) {
callback.onSuccess(result); callback.onSuccess(result);
} }
@Override @Override
public void onError(Throwable e) { public void onError(Throwable e) {
callback.onError(e); callback.onError(e);
} }
@Override @Override
public void onComplete() { public void onComplete() {
} }
}); });
} catch (Exception e) {
e.printStackTrace();
}
} }
} }