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

View File

@@ -46,25 +46,7 @@ class OkHttpFactory private constructor() {
.writeTimeout(WRITE_TIMEOUT, TimeUnit.MILLISECONDS)
.eventListenerFactory(WeakNetworkEventFactory.FACTORY)
.dispatcher(dispatcher)
// 可选:添加自定义 DNS 解析逻辑
.dns(CustomDns()) // 使用系统默认 DNS 或者自定义 Dns 实现
.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 {
override fun run() {
V2XRefreshModel.querySnapshot(longitude = this@V2XManager.realLongitude.get(), latitude = this@V2XManager.realLatitude.get(), refreshCallback)
handler.postDelayed(this, config.get().durationForTriggerRefresh)
try {
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.disposables.Disposable
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 {

View File

@@ -33,30 +33,30 @@ SNAPSHOT_REPOSITORY_URL=http://nexus.zhidaoauto.com/repository/maven-snapshots/
USERNAME=xintai
PASSWORD=xintai2018
# 编译模式: false - 依赖本地版本, true - 依赖 maven 版本
RELEASE=false
RELEASE=true
# 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
MOGO_V2X_VERSION=1.4.7.59
MOGO_V2X_VERSION=1.4.7.62
# SKIN
MOGO_SKIN_VERSION=1.4.7.50
# SDK
@@ -75,7 +75,7 @@ SONATYPE_HOST=S01
RELEASE_SIGNING_ENABLED=false
# 组织名
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
# 版本控制信息

View File

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

View File

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