This commit is contained in:
zhongchao
2021-01-29 17:41:51 +08:00
149 changed files with 3558 additions and 137 deletions

View File

@@ -17,33 +17,26 @@ public class MainActivity extends AppCompatActivity {
private Button btnJumpPassPort;
private Button btnJumpNetWorkPort;
private Button btnJumpRealTime;
private Button btnJumpRoadCondition;
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);
initPassportInfo();
btnJumpPassPort = findViewById(R.id.btnJumpPassPort);
btnJumpPassPort.setOnClickListener(v -> {
MoGoAiCloudClient.getInstance().refreshToken(new IMoGoTokenCallback() {
@Override
public void onTokenGot(String token, String sn) {
initPassportInfo();
}
@Override
public void onError(int code, String msg) {
}
});
MoGoAiCloudClient.getInstance().refreshToken();
});
btnJumpNetWorkPort = findViewById(R.id.btnJumpNetWorkPort);
@@ -57,12 +50,33 @@ public class MainActivity extends AppCompatActivity {
Intent intent = new Intent(MainActivity.this, RealTimeActivity.class);
startActivity(intent);
});
btnJumpRoadCondition = findViewById(R.id.btnJumpRoadcondition);
btnJumpRoadCondition.setOnClickListener(v -> {
Intent intent = new Intent(MainActivity.this, RoadConditionActivity.class);
startActivity(intent);
});
MoGoAiCloudClient.getInstance().addTokenCallbacks(new IMoGoTokenCallback() {
@Override
public void onTokenGot(String token, String sn) {
initPassportInfo();
}
@Override
public void onError(int code, String msg) {
initPassportInfo();
}
});
}
/**
* 初始化令牌信息
*/
private void initPassportInfo() {
tvAppKey.setText("AppKey" + MoGoAiCloudClient.getInstance().getAiCloudClientConfig().getThirdPartyDeviceId());
tvDevicesId.setText("DevicesId" + MoGoAiCloudClient.getInstance().getAiCloudClientConfig().getThirdPartyDeviceId());
String sn = MoGoAiCloudClient.getInstance().getAiCloudClientConfig().getSn();
String token = MoGoAiCloudClient.getInstance().getAiCloudClientConfig().getToken();

View File

@@ -5,17 +5,22 @@ import androidx.multidex.MultiDexApplication;
import com.mogo.cloud.httpdns.MogoHttpDnsConfig;
import com.mogo.cloud.httpdns.bean.HttpDnsSimpleLocation;
import com.mogo.cloud.httpdns.listener.IHttpDnsCurrentLocation;
import com.mogo.cloud.passport.IMoGoTokenCallback;
import com.mogo.cloud.passport.MoGoAiCloudClient;
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
/**
*
*/
public class MoGoApplication extends MultiDexApplication {
@Override
public void onCreate() {
super.onCreate();
@@ -54,7 +59,8 @@ public class MoGoApplication extends MultiDexApplication {
});
// 初始化SDK可以设置状态回调来监听
MoGoAiCloudClient.getInstance().init(this, clientConfig, null);
MoGoAiCloudClient.getInstance().init(
this, clientConfig);
}
}

View File

@@ -0,0 +1,142 @@
package com.mogo.cloud;
import android.os.Bundle;
import android.util.Log;
import android.widget.Button;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.google.gson.Gson;
import com.mogo.cloud.network.BaseData;
import com.mogo.cloud.network.NetworkActivity;
import com.mogo.cloud.passport.MoGoAiCloudClient;
import com.mogo.cloud.tanlu.MogoRoadSearchManager;
import com.mogo.cloud.tanlu.MogoUploadManager;
import com.mogo.cloud.tanlu.api.IRoadInfoSearchCallback;
import com.mogo.cloud.tanlu.api.ITanluUploadCallback;
import com.mogo.cloud.tanlu.bean.RoadInfoRequest;
import com.mogo.cloud.tanlu.bean.RoadInfos;
import com.mogo.cloud.tanlu.bean.UploadInfo;
import com.mogo.cloud.tanlu.bean.UploadResult;
import com.mogo.cloud.tanlu.bean.location.Location;
import com.mogo.realtime.Interface.MoGoAiCloudRealTime;
import com.mogo.realtime.entity.MogoSnapshotSetData;
import com.mogo.realtime.socket.IMogoCloudOnMsgListener;
import java.util.ArrayList;
/**
* @author lixiaopeng
* @description 路况服务
* @since: 2021/1/21
*/
public class RoadConditionActivity extends AppCompatActivity {
private static final String TAG = "RoadConditionActivity";
private Button roadUploadButton;
private Button roadQueryButton;
private TextView roadUploadTv;
private TextView roadQueryTv;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_roadcondition);
roadUploadTv = findViewById(R.id.road_upload_tv);
roadQueryTv = findViewById(R.id.road_query_tv);
roadUploadButton = findViewById(R.id.road_upload_bt);
roadUploadButton.setOnClickListener(view -> {
uploadRoadInfo();
});
roadQueryButton = findViewById(R.id.road_query_bt);
roadQueryButton.setOnClickListener(view -> {
queryRoad();
});
}
@Override
protected void onDestroy() {
super.onDestroy();
}
public void queryRoad() {
ArrayList list = new ArrayList();
list.add("10007");
//北京市朝阳区小黄庄北街2号 经纬度和地理位置必须有一个
Location location = new Location();
location.setLatitude(39.968139);
location.setLongitude(116.411468);
RoadInfoRequest request = new RoadInfoRequest(location, "中关村", list, false, false);
MogoRoadSearchManager.getInstance(RoadConditionActivity.this).init();
MogoRoadSearchManager.getInstance(RoadConditionActivity.this).queryRoadInfo(request, new IRoadInfoSearchCallback() {
@Override
public void onSuccess(BaseData<RoadInfos> result) {
if (result != null && result.getResult() != null) {
if (result != null && result.getResult() != null) {
roadQueryTv.setText(new Gson().toJson(result));
} else {
roadQueryTv.setText("onSuccess code = " + result.getCode() + " --message = " + result.getMsg());
}
}
}
@Override
public void onFailure(int code) {
roadQueryTv.setText("onFailure code = " + code);
}
@Override
public void onError(Throwable e) {
roadQueryTv.setText("onError e = " + e);
}
});
}
public void uploadRoadInfo() {
UploadInfo info = new UploadInfo();
// info.setFilePath("/storage/emulated/0/Movies/compress_video_20210127112035.mp4");
info.setFilePath("/storage/emulated/0/Movies/2222.png");
info.setAddr("北京市东城区小黄庄北街2号靠近中国银行");
info.setLongitude(116.410892);
info.setLatitude(39.968317);
info.setPoiType("10007");
info.setDirection(0);
info.setAreaCode("110101");
info.setCityCode("010");
info.setSn("F803EB2046PZD00228");
info.setType(0); //0为图片 1为视频
MogoUploadManager.getInstance(RoadConditionActivity.this).uploadInfo(info, new ITanluUploadCallback() {
@Override
public void onSuccess(BaseData<UploadResult> result) {
if (result != null && result.getResult() != null) {
roadUploadTv.setText("onSuccess id = " + result.getResult().id + "");
} else {
roadUploadTv.setText("onSuccess code = " + result.getCode() + " --message = " + result.getMsg());
}
}
@Override
public void onFailure(int code) {
roadUploadTv.setText("onFailure code = " + code);
}
@Override
public void onError(Throwable e) {
roadUploadTv.setText("onError e = " + e);
}
});
}
}

View File

@@ -1,7 +1,6 @@
package com.mogo.cloud.network;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
@@ -10,13 +9,6 @@ import androidx.appcompat.app.AppCompatActivity;
import com.google.gson.Gson;
import com.mogo.cloud.R;
import com.mogo.cloud.tanlu.MogoRoadSearchManager;
import com.mogo.cloud.tanlu.MogoUploadManager;
import com.mogo.cloud.tanlu.api.IRoadInfoSearchCallback;
import com.mogo.cloud.tanlu.api.ITanluUploadCallback;
import com.mogo.cloud.tanlu.bean.RoadInfos;
import com.mogo.cloud.tanlu.bean.UploadInfo;
import com.mogo.cloud.tanlu.bean.UploadResult;
import java.util.HashMap;
import java.util.Map;
@@ -27,6 +19,7 @@ import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
import static com.mogo.cloud.network.NetConstants.GEOFENCE_HOST;
import static com.mogo.cloud.network.NetConstants.REALTIME_LOCATION_HOST;
/**
* created by wujifei on 2021/1/21 12:26
@@ -53,76 +46,6 @@ public class NetworkActivity extends AppCompatActivity {
tvResult.setText("结果显示");
queryRoadData("ZD802C1938L10797");
// queryHelpSignal("F803EB2046PZD00006");
//上报路况到服务端
// uploadRoadInfo();
//查询路况
// queryRoad();
}
});
}
public void queryRoad() {
MogoRoadSearchManager.getInstance(NetworkActivity.this).init();
MogoRoadSearchManager.getInstance(NetworkActivity.this).queryRoadInfo(null, new IRoadInfoSearchCallback() {
@Override
public void onSuccess(BaseData<RoadInfos> result) {
if (result != null && result.getResult() != null) {
Log.d(TAG, "msg = " + result.getMsg() + " --code =" + result.getCode());
if (result.getResult().getData() != null) {
Log.d(TAG, "NetworkActivity queryRoad size() = " + result.getResult().getData().size());
}
tvResult.setText(new Gson().toJson(result));
}
}
@Override
public void onFailure(int code) {
Log.d(TAG, "NetworkActivity queryRoad code = " + code);
}
@Override
public void onError(Throwable e) {
Log.d(TAG, "NetworkActivity queryRoad e = " + e);
}
});
}
public void uploadRoadInfo() {
UploadInfo info = new UploadInfo();
// info.setFilePath("/storage/emulated/0/Movies/compress_video_20210127112035.mp4");
// info.setFilePath("/storage/emulated/0/Movies/2222.png");
info.setAddr("北京市东城区小黄庄北街2号靠近中国银行");
info.setLongitude(116.410892);
info.setLatitude(39.968317);
info.setPoiType("10007");
info.setDirection(0);
info.setAreaCode("110101");
info.setCityCode("010");
info.setSn("F803EB2046PZD00228");
info.setType(0); //0为图片 1为视频
MogoUploadManager.getInstance(NetworkActivity.this).uploadInfo(info, new ITanluUploadCallback() {
@Override
public void onSuccess(BaseData<UploadResult> result) {
if (result != null && result.getResult() != null) {
Log.d(TAG, "NetworkActivity uploadRoadInfo result.id = " + result.getResult().id);
tvResult.setText(result.getResult().id + "");
} else {
Log.e(TAG, "NetworkActivity uploadRoadInfo result == null");
}
}
@Override
public void onFailure(int code) {
Log.d(TAG, "NetworkActivity uploadRoadInfo code = " + code);
}
@Override
public void onError(Throwable e) {
Log.d(TAG, "NetworkActivity uploadRoadInfo onError e = " + e);
}
});
}
@@ -144,8 +67,8 @@ public class NetworkActivity extends AppCompatActivity {
@Override
public void onNext(BaseData<V2XRoadDataRes> value) {
tvResult.setText(new Gson().toJson(value));
System.out.println(new Gson().toJson(value));
tvResult.setText(formatJson(new Gson().toJson(value)));
System.out.println(formatJson(new Gson().toJson(value)));
}
@Override
@@ -163,7 +86,7 @@ public class NetworkActivity extends AppCompatActivity {
}
public void queryHelpSignal(String sn) {
apiService = RetrofitFactory.INSTANCE.getInstance("http://dzt-realtimeLocation.zhidaozhixing.com")
apiService = RetrofitFactory.INSTANCE.getInstance(REALTIME_LOCATION_HOST)
.create(ApiService.class);
if (apiService != null) {
Map<String, Object> map = new HashMap<>();
@@ -179,8 +102,8 @@ public class NetworkActivity extends AppCompatActivity {
@Override
public void onNext(BaseData<V2XSeekHelpRes> value) {
tvResult.setText(new Gson().toJson(value));
System.out.println(new Gson().toJson(value));
tvResult.setText(formatJson(new Gson().toJson(value)));
System.out.println(formatJson(new Gson().toJson(value)));
}
@Override
@@ -196,4 +119,62 @@ public class NetworkActivity extends AppCompatActivity {
});
}
}
public static String formatJson(String jsonStr) {
if (null == jsonStr || "".equals(jsonStr))
return "";
StringBuilder sb = new StringBuilder();
char last = '\0';
char current = '\0';
int indent = 0;
boolean isInQuotationMarks = false;
for (int i = 0; i < jsonStr.length(); i++) {
last = current;
current = jsonStr.charAt(i);
switch (current) {
case '"':
if (last != '\\') {
isInQuotationMarks = !isInQuotationMarks;
}
sb.append(current);
break;
case '{':
case '[':
sb.append(current);
if (!isInQuotationMarks) {
sb.append('\n');
indent++;
addIndentBlank(sb, indent);
}
break;
case '}':
case ']':
if (!isInQuotationMarks) {
sb.append('\n');
indent--;
addIndentBlank(sb, indent);
}
sb.append(current);
break;
case ',':
sb.append(current);
if (last != '\\' && !isInQuotationMarks) {
sb.append('\n');
addIndentBlank(sb, indent);
}
break;
default:
sb.append(current);
}
}
return sb.toString();
}
private static void addIndentBlank(StringBuilder sb, int indent) {
for (int i = 0; i < indent; i++) {
sb.append('\t');
}
}
}