Files
MoGoAiCloudSdk/app/src/main/java/com/mogo/cloud/MainActivity.java
2023-02-20 21:11:53 +08:00

304 lines
12 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package com.mogo.cloud;
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.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 {
private static final String TAG = "MainActivity";
private Button btnJumpPassPort;
private Button btnJumpConfigInfo;
private Button btnJumpNetWorkPort;
private Button btnJumpRealTime;
private Button btnJumpLocation;
private Button btnJumpRoadCondition;
private Button btnJumpLivePlayAndPush;
private Button btnJumpLivePush;
private Button btnJumpLivePlay;
private Button btnJumpLivePlayOne;
private Button btnRequestXINGLive;
private Button btnRequestCarLive;
private Button btnV2XFunctionTest;
private boolean v2xHasBeenInitialized = false;
private Button btnNSDNetty;
private SurfaceView surfacePreviewView;
private TextView tvSn;
private TextView tvToken;
private TextView tvAppKey;
private TextView tvDevicesId;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvAppKey = findViewById(R.id.tvAppKey);
tvDevicesId = findViewById(R.id.tvDevicesId);
tvSn = findViewById(R.id.tvSn);
tvToken = findViewById(R.id.tvToken);
btnJumpPassPort = findViewById(R.id.btnJumpPassPort);
btnJumpPassPort.setOnClickListener(v -> {
MoGoAiCloudClient.getInstance().refreshToken();
});
btnJumpRealTime = findViewById(R.id.btnJumpRealTime);
btnJumpRealTime.setOnClickListener(v -> {
Intent intent = new Intent(MainActivity.this, RealTimeActivity.class);
startActivity(intent);
});
btnJumpLocation = findViewById(R.id.btnJumpLocation);
btnJumpLocation.setOnClickListener(v -> {
Intent intent = new Intent(MainActivity.this, LocationActivity.class);
startActivity(intent);
});
btnJumpRoadCondition = findViewById(R.id.btnJumpRoadcondition);
btnJumpRoadCondition.setOnClickListener(v -> {
Intent intent = new Intent(MainActivity.this, RoadConditionActivity.class);
startActivity(intent);
});
btnJumpConfigInfo = findViewById(R.id.btnJumpConfigInfo);
btnJumpConfigInfo.setOnClickListener(v -> {
Intent intent = new Intent(MainActivity.this, ConfigInfoActivity.class);
startActivity(intent);
});
btnJumpLivePlayAndPush = findViewById(R.id.btnJumpLivePlayAndPush);
btnJumpLivePlayAndPush.setOnClickListener(v -> {
Intent intent = new Intent(MainActivity.this, LivePlayAndPushActivity.class);
startActivity(intent);
});
btnJumpLivePush = findViewById(R.id.btnJumpLivePush);
btnJumpLivePush.setOnClickListener(v -> {
Intent intent = new Intent(MainActivity.this, LivePushActivity.class);
startActivity(intent);
});
btnJumpLivePlay = findViewById(R.id.btnJumpLivePlay);
btnJumpLivePlay.setOnClickListener(v -> {
Intent intent = new Intent(MainActivity.this, LivePlayActivity.class);
startActivity(intent);
});
btnJumpLivePlayOne = findViewById(R.id.btnJumpLivePlayOne);
btnJumpLivePlayOne.setOnClickListener(v -> {
Intent intent = new Intent(MainActivity.this, LivePlayOneActivity.class);
startActivity(intent);
});
btnRequestXINGLive = findViewById(R.id.btnRequestXINGLive);
btnRequestXINGLive.setOnClickListener(v -> {
MoGoAiCloudTrafficLive.viewDesignativeIntersectionLive("556834859_trafficcamera_100514_89", new ITrafficIntersectionLiveCallBack() {
@Override
public void liveUrlResult(String liveUrl) {
Logger.i(TAG, "liveUrl : " + liveUrl);
}
@Override
public void onError(String errorMsg) {
Logger.e(TAG, "errorMsg : " + errorMsg);
}
});
// MoGoAiCloudTrafficLive.viewDesignativeIntersectionLive("POLE1617103029423", new ITrafficIntersectionLiveCallBack() {
// @Override
// public void liveUrlResult(String liveUrl) {
// Logger.d(TAG, "liveUrl : " + liveUrl);
// }
//
// @Override
// public void onError(String errorMsg) {
// Logger.e(TAG, "errorMsg : " + errorMsg);
// }
// });
// MoGoAiCloudTrafficLive.viewFrontIntersectionLive(40.11547, 116.22544, 60, new ITrafficIntersectionLiveCallBack() {
// @Override
// public void liveUrlResult(String liveUrl) {
// Logger.d(TAG, "liveUrl : " + liveUrl);
// }
//
// @Override
// public void onError(String errorMsg) {
// Logger.e(TAG, "errorMsg : " + errorMsg);
// }
// });
});
btnRequestXINGLive = findViewById(R.id.btnRequestXINGLive);
btnRequestXINGLive.setOnClickListener(v -> {
MoGoAiCloudTrafficLive.viewDesignativeIntersectionLive("556834859_trafficcamera_100514_89", new ITrafficIntersectionLiveCallBack() {
@Override
public void liveUrlResult(String liveUrl) {
Logger.i(TAG, "liveUrl : " + liveUrl);
}
@Override
public void onError(String errorMsg) {
Logger.e(TAG, "errorMsg : " + errorMsg);
}
});
});
btnRequestCarLive = findViewById(R.id.btnRequestCarLive);
btnNSDNetty = findViewById(R.id.btnNSDNetty);
surfacePreviewView = findViewById(R.id.surfacePreviewView);
btnRequestCarLive.setOnClickListener(v -> {
MoGoAiCloudTrafficLive.viewFrontVehicleLive(40.11547, 116.22544,
60, surfacePreviewView, new ITrafficCarLiveCallBack() {
@Override
public void onLiveConnecting() {
}
@Override
public void onLiveConnected() {
}
@Override
public void onLive(String liveSn) {
Logger.e(TAG, "liveSn : " + liveSn);
}
@Override
public void onFirstFrame() {
Logger.e(TAG, "onFirstFrame");
}
@Override
public void onDisConnect() {
Logger.e(TAG, "onDisConnect");
}
@Override
public void onError(String errorMsg) {
Logger.e(TAG, "errorMsg");
}
});
});
btnNSDNetty.setOnClickListener(v -> {
Intent intent = new Intent(MainActivity.this, NSDNettyActivity.class);
startActivity(intent);
});
//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())
.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();
}
@Override
public void onError(int code, String msg) {
initPassportInfo();
}
});
}
@Override
protected void onResume() {
super.onResume();
MoGoAiCloudClient.getInstance().refreshToken();
}
/**
* 初始化令牌信息
*/
private void initPassportInfo() {
tvAppKey.setText("AppKey" + MoGoAiCloudClient.getInstance().getAiCloudClientConfig().getThirdPartyAppKey());
tvDevicesId.setText("DevicesId" + MoGoAiCloudClient.getInstance().getAiCloudClientConfig().getThirdPartyDeviceId());
String sn = MoGoAiCloudClient.getInstance().getAiCloudClientConfig().getSn();
String token = MoGoAiCloudClient.getInstance().getAiCloudClientConfig().getToken();
if (TextUtils.isEmpty(sn)) {
sn = "获取失败,请重试";
}
if (TextUtils.isEmpty(token)) {
token = "获取失败,请重试";
}
tvSn.setText("SN" + sn);
tvToken.setText("Token" + token);
}
}