[V2X]V2XSDk功能代码提交

111
This commit is contained in:
renwj
2022-02-23 15:18:43 +08:00
parent 07d60fb48a
commit da609a15f5
46 changed files with 1507 additions and 339 deletions

View File

@@ -62,11 +62,13 @@ dependencies {
implementation "com.mogo.cloud:tanlu:${MOGO_TANLU_VERSION}"
implementation "com.mogo.cloud:realtime:${MOGO_REALTIME_VERSION}"
implementation "com.mogo.cloud:trafficlive:${MOGO_TRAFFICLIVE_VERSION}"
implementation "com.mogo.v2x:v2x:${MOGO_V2X_VERSION}"
} else {
implementation project(":foudations:mogo-location")
implementation project(":modules:mogo-tanlu")
implementation project(":modules:mogo-realtime")
implementation project(":modules:mogo-trafficlive")
implementation project(":foudations:mogo-v2x")
}
annotationProcessor 'com.elegant.spi:compiler:1.0.3' //编译时库

View File

@@ -4,18 +4,27 @@ import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.SurfaceView;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import com.elegant.log.simplelog.Logger;
import com.mogo.cloud.network.NetworkActivity;
import com.mogo.cloud.passport.IMoGoTokenCallback;
import com.mogo.cloud.passport.MoGoAiCloudClient;
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
import com.mogo.cloud.trafficlive.api.ITrafficCarLiveCallBack;
import com.mogo.cloud.trafficlive.api.ITrafficIntersectionLiveCallBack;
import com.mogo.cloud.trafficlive.api.MoGoAiCloudTrafficLive;
import com.mogo.v2x.V2XManager;
import com.mogo.v2x.callback.IV2XCallback;
import com.mogo.v2x.config.V2XConfig;
import com.mogo.v2x.event.V2XEvent;
import java.util.concurrent.TimeUnit;
public class MainActivity extends AppCompatActivity {
@@ -32,6 +41,9 @@ public class MainActivity extends AppCompatActivity {
private Button btnJumpLivePlay;
private Button btnRequestXINGLive;
private Button btnRequestCarLive;
private Button btnV2XFunctionTest;
private boolean v2xHasBeenInitialized = false;
private SurfaceView surfacePreviewView;
private TextView tvSn;
@@ -192,9 +204,62 @@ public class MainActivity extends AppCompatActivity {
});
});
//V2X功能测试
btnV2XFunctionTest = findViewById(R.id.btnV2XFunctionTest);
btnV2XFunctionTest.setOnClickListener(v -> {
if (v2xHasBeenInitialized) {
return;
}
v2xHasBeenInitialized = true;
V2XConfig.Builder builder = new V2XConfig.Builder();
builder.loggable(true)
.aiCloudConfig(MoGoAiCloudClientConfig.getInstance())
.appId("com.mogo.launcher")
.context(v.getContext())
.distanceForTriggerRefresh(300)
.durationForTriggerRefresh(1, TimeUnit.MINUTES);
V2XManager.INSTANCE.init(builder.build());
V2XManager.INSTANCE.addCallback(new IV2XCallback() {
@Override
public void onAck(@NonNull V2XEvent event) {
if (event instanceof V2XEvent.ForwardsWarning) {
V2XEvent.ForwardsWarning warning = (V2XEvent.ForwardsWarning) event;
Logger.d("V2XManager", "forward-warning<->onAck::" + warning.toString());
}
if (event instanceof V2XEvent.OptimalRoute) {
V2XEvent.OptimalRoute route = (V2XEvent.OptimalRoute) event;
Logger.d("V2XManager", "route<->onAck::" + route.toString());
}
if (event instanceof V2XEvent.Warning) {
V2XEvent.Warning warning = (V2XEvent.Warning) event;
Logger.d("V2XManager", "warning<->onAck::" + warning.toString());
}
if (event instanceof V2XEvent.Road) {
V2XEvent.Road road = (V2XEvent.Road) event;
Logger.d("V2XManager", "road<-->onAck::" + road.toString());
}
if (event instanceof V2XEvent.Marker) {
V2XEvent.Marker marker = (V2XEvent.Marker) event;
Logger.d("V2XManager", "marker<-->onAck::" + marker.toString());
}
}
@Override
public void onFail(@NonNull String s) {
Logger.d("V2XManager", "onFail::" + s);
}
});
});
MoGoAiCloudClient.getInstance().addTokenCallbacks(new IMoGoTokenCallback() {
@Override
public void onTokenGot(String token, String sn) {
if (btnV2XFunctionTest.getVisibility() != View.VISIBLE) {
btnV2XFunctionTest.setVisibility(View.VISIBLE);
}
initPassportInfo();
}

View File

@@ -11,6 +11,7 @@ import com.mogo.cloud.httpdns.MogoHttpDnsClient;
import com.mogo.cloud.httpdns.MogoHttpDnsConfig;
import com.mogo.cloud.httpdns.bean.HttpDnsSimpleLocation;
import com.mogo.cloud.httpdns.listener.IHttpDnsCurrentLocation;
import com.mogo.cloud.location.LocationManager;
import com.mogo.cloud.passport.IMoGoTokenCallback;
import com.mogo.cloud.passport.MoGoAiCloudClient;
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;

View File

@@ -112,6 +112,12 @@
android:text="查看周边可直播车"
android:visibility="visible" />
<Button
android:id="@+id/btnV2XFunctionTest"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"/>
<SurfaceView
android:id="@+id/surfacePreviewView"
android:layout_width="match_parent"