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); } }