diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 1a0aaec..df338e2 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -23,7 +23,6 @@
-
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5fad0b2..c3952e7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,12 @@
android:label="实时数据测试">
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/mogo/cloud/MainActivity.java b/app/src/main/java/com/mogo/cloud/MainActivity.java
index 532cf07..29a3de1 100644
--- a/app/src/main/java/com/mogo/cloud/MainActivity.java
+++ b/app/src/main/java/com/mogo/cloud/MainActivity.java
@@ -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();
diff --git a/app/src/main/java/com/mogo/cloud/MoGoApplication.java b/app/src/main/java/com/mogo/cloud/MoGoApplication.java
index 36070af..c8d7b35 100644
--- a/app/src/main/java/com/mogo/cloud/MoGoApplication.java
+++ b/app/src/main/java/com/mogo/cloud/MoGoApplication.java
@@ -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);
}
}
diff --git a/app/src/main/java/com/mogo/cloud/RoadConditionActivity.java b/app/src/main/java/com/mogo/cloud/RoadConditionActivity.java
new file mode 100644
index 0000000..4cda9ca
--- /dev/null
+++ b/app/src/main/java/com/mogo/cloud/RoadConditionActivity.java
@@ -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 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 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);
+ }
+ });
+ }
+
+
+}
diff --git a/app/src/main/java/com/mogo/cloud/network/NetworkActivity.java b/app/src/main/java/com/mogo/cloud/network/NetworkActivity.java
index 4847b27..28ea228 100644
--- a/app/src/main/java/com/mogo/cloud/network/NetworkActivity.java
+++ b/app/src/main/java/com/mogo/cloud/network/NetworkActivity.java
@@ -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 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 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 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 map = new HashMap<>();
@@ -179,8 +102,8 @@ public class NetworkActivity extends AppCompatActivity {
@Override
public void onNext(BaseData 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');
+ }
+ }
}
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index a6cf79b..b61d77c 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -10,11 +10,27 @@
android:layout_height="match_parent"
android:orientation="vertical">
+
+
+
+
@@ -22,7 +38,7 @@
android:id="@+id/tvToken"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_margin="10dp"
+ android:layout_margin="5dp"
android:text="Token:"
android:textSize="20dp" />
@@ -43,6 +59,12 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="实时数据测试" />
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_network.xml b/app/src/main/res/layout/activity_network.xml
index f9d03b9..954a9d2 100644
--- a/app/src/main/res/layout/activity_network.xml
+++ b/app/src/main/res/layout/activity_network.xml
@@ -11,9 +11,16 @@
android:layout_height="wrap_content"
android:text="网络请求" />
-
+ android:layout_height="match_parent">
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_roadcondition.xml b/app/src/main/res/layout/activity_roadcondition.xml
new file mode 100644
index 0000000..7df0bbf
--- /dev/null
+++ b/app/src/main/res/layout/activity_roadcondition.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index fac9291..13f74a4 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -1,6 +1,6 @@
-