From 82e853c976f0d268df2b493b2db89671748f35a6 Mon Sep 17 00:00:00 2001
From: lizhanwei <Dana_Lee1016@126.com>
Date: 星期四, 02 四月 2020 11:02:58 +0800
Subject: [PATCH] 实现从"https://trainsim-api.aaej.cn/"获取map和car模型的http接口
---
app/src/main/java/safeluck/drive/evaluation/app.java | 22 ++--
app/src/main/java/safeluck/drive/evaluation/httpmodule/GsonConverterFactory.java | 44 ++++++++
app/src/main/java/safeluck/drive/evaluation/httpmodule/MyGsonRequestBodyConverter.java | 45 +++++++++
app/src/main/java/safeluck/drive/evaluation/httpmodule/RetrofitCreator.kt | 17 +++
build.gradle | 3
app/src/main/java/safeluck/drive/evaluation/httpmodule/AYApiService.java | 22 ++++
app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java | 7
app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java | 78 +++++++++++----
app/src/main/java/safeluck/drive/evaluation/httpmodule/HttpRequetBean.kt | 3
app/build.gradle | 5 +
10 files changed, 209 insertions(+), 37 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index 2f7d9fa..7a6e630 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -12,6 +12,10 @@
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
+ compileOptions {
+ sourceCompatibility 1.8
+ targetCompatibility 1.8
+ }
buildTypes {
release {
minifyEnabled false
@@ -64,6 +68,7 @@
implementation "androidx.core:core-ktx:+"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.1.0"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
+ implementation "com.squareup.retrofit2:retrofit:$rootProject.retrofit_version"
}
repositories {
mavenCentral()
diff --git a/app/src/main/java/safeluck/drive/evaluation/app.java b/app/src/main/java/safeluck/drive/evaluation/app.java
index 54f88f9..abba3b8 100644
--- a/app/src/main/java/safeluck/drive/evaluation/app.java
+++ b/app/src/main/java/safeluck/drive/evaluation/app.java
@@ -3,6 +3,7 @@
import android.app.Application;
import android.content.Context;
import android.os.Environment;
+import android.os.Looper;
import android.text.TextUtils;
import android.util.Log;
import android.widget.Toast;
@@ -34,9 +35,15 @@
import org.json.JSONException;
import org.json.JSONObject;
+import java.io.File;
+import java.io.IOException;
import java.util.Date;
import java.util.Random;
+import okhttp3.ResponseBody;
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
import safeluck.drive.evaluation.DB.WorkRoomDataBase;
import safeluck.drive.evaluation.DB.appstatusdb.AppStatusWorker;
import safeluck.drive.evaluation.DB.criterias.CriteriaForI;
@@ -56,6 +63,8 @@
import safeluck.drive.evaluation.bean.ExamPlatformData;
import safeluck.drive.evaluation.cEventCenter.CEvent;
import safeluck.drive.evaluation.cEventCenter.CEventCenter;
+import safeluck.drive.evaluation.httpmodule.HttpRequetBean;
+import safeluck.drive.evaluation.httpmodule.RetrofitCreator;
import safeluck.drive.evaluation.im.IMSClientBootstrap;
import safeluck.drive.evaluation.im.IMSConnectStatusListener;
import safeluck.drive.evaluation.im.MessageProcessor;
@@ -84,7 +93,6 @@
private static final String TAG = "app";
private Gson gson;
RTKConfig rtkConfig;
- FailedProjRepository failedProjRepository;//澶辫触椤圭洰琛ㄦ暟鎹簱
Random random = new Random();
private static Context appContext=null;
@Override
@@ -114,16 +122,8 @@
//鏁版嵁搴撴搷浣�
MyLog.i(TAG, "onCreate111");
FileUtil.createdirs(getApplicationContext());
- failedProjRepository = new FailedProjRepository(this);
- MyLog.i(TAG,"鎷疯礉assert鐩綍涓嬬殑map" +
- "鍜寁echile json鍒板寘鐩綍涓�");
- new Thread(new Runnable() {
- @Override
- public void run() {
- FileUtil.copyAssertFileToSD(getApplicationContext(),Constant.MAP);
- FileUtil.copyAssertFileToSD(getApplicationContext(),Constant.VEHICLE);
- }
- }).start();
+ //1.鍏堟鏌d鍗″寘鍚嶇殑鐩綍涓嬶紝鏄惁瀛樺湪鍦板浘鏂囦欢鍜岃溅杈嗘ā鍨嬫枃浠�
+ //2. 濡傛灉涓嶈兘鍐嶅氨鍘讳笅杞�
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java
index 6564fe4..99a1fbc 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java
@@ -5,6 +5,7 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import android.os.Looper;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
@@ -12,6 +13,7 @@
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
+import android.widget.Toast;
import androidx.appcompat.widget.AppCompatEditText;
import androidx.lifecycle.Observer;
@@ -22,6 +24,7 @@
import com.google.android.material.textfield.TextInputEditText;
import com.safeluck.aykj.utils.BytesUtils;
+import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.concurrent.Executors;
@@ -29,10 +32,18 @@
import java.util.concurrent.TimeUnit;
import me.yokeyword.fragmentation.SupportFragment;
+import okhttp3.ResponseBody;
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+import retrofit2.Retrofit;
import safeluck.drive.evaluation.DB.criterias.CriteriaForI;
import safeluck.drive.evaluation.DB.criterias.viewmodel.CriteriaIViewModel;
import safeluck.drive.evaluation.R;
import safeluck.drive.evaluation.bean.ExamPlatformData;
+import safeluck.drive.evaluation.httpmodule.AYApiService;
+import safeluck.drive.evaluation.httpmodule.HttpRequetBean;
+import safeluck.drive.evaluation.httpmodule.RetrofitCreator;
import safeluck.drive.evaluation.im.MessageProcessor;
import safeluck.drive.evaluation.platformMessage.AttachInfo;
import safeluck.drive.evaluation.platformMessage.JKMessage0001;
@@ -45,6 +56,7 @@
import safeluck.drive.evaluation.platformMessage.JKMessage0204;
import safeluck.drive.evaluation.im.IMSClientBootstrap;
import safeluck.drive.evaluation.platformMessage.JKMessage0206;
+import safeluck.drive.evaluation.util.CThreadPoolExecutor;
import safeluck.drive.evaluation.util.SPUtils;
import static safeluck.drive.evaluation.util.Utils.utc2NetWorkTime;
@@ -132,31 +144,53 @@
/**======================娴嬭瘯鏁版嵁搴撶粨鏉�==================*/
- Speaker speaker = new Speaker(getActivity(),null);
- speaker.speak("涓浗鍔犳补锛岄噸搴嗗姞娌�");
+// Speaker speaker = new Speaker(getActivity(),null);
+// speaker.speak("涓浗鍔犳补锛岄噸搴嗗姞娌�");
+//
+// String userId = "100002";
+// String token = "token_" + userId;
+//// String hosts = "[{\"host\":\"47.93.80.84\", \"port\":12125}]";
+// String hosts = "[{\"host\":\"47.93.157.103\", \"port\":2020}]";
+//// String hosts = "[{\"host\":\"192.168.31.77\", \"port\":12125}]";
+//
+// IMSClientBootstrap.getInstance().init(userId, token, hosts, 1, new IMSConnectStatusCallback() {
+// @Override
+// public void onConnecting() {
+//
+// }
+//
+// @Override
+// public void onConnected() {
+//
+// }
+//
+// @Override
+// public void onConnectFailed() {
+//
+// }
+// });
- String userId = "100002";
- String token = "token_" + userId;
-// String hosts = "[{\"host\":\"47.93.80.84\", \"port\":12125}]";
- String hosts = "[{\"host\":\"47.93.157.103\", \"port\":2020}]";
-// String hosts = "[{\"host\":\"192.168.31.77\", \"port\":12125}]";
+ RetrofitCreator.Companion.getRestService().getMapsAndVehicleModel(new HttpRequetBean("0314200100000004","place")).enqueue(new Callback<ResponseBody>() {
+ @Override
+ public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
+ String str = null;
+ try {
+ str = response.body().string();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ Log.i(TAG,"鏈嶅姟鍣ㄨ繑鍥炵殑body="+str);
+ if (Looper.myLooper()==Looper.getMainLooper()){
+ Toast.makeText(_mActivity, "涓荤嚎绋�", Toast.LENGTH_SHORT).show();
+ }
+ }
- IMSClientBootstrap.getInstance().init(userId, token, hosts, 1, new IMSConnectStatusCallback() {
- @Override
- public void onConnecting() {
+ @Override
+ public void onFailure(Call<ResponseBody> call, Throwable t) {
+ Log.i(TAG,t.getLocalizedMessage());
+ }
+ });
- }
-
- @Override
- public void onConnected() {
-
- }
-
- @Override
- public void onConnectFailed() {
-
- }
- });
break;
case R.id.btn_send:
// if (connectThread != null){
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
index 63545e0..4ce4f3b 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
@@ -304,7 +304,7 @@
if (examStatus.getResult() ==1){
MyLog.i(String.format("宸茬粡鎾斁杩�%s鍚堟牸",ss));
}else{
- ExamPlatformData.getInstance().getTTS().speak(String.format("%s鍚堟牸",ss));
+// ExamPlatformData.getInstance().getTTS().speak(String.format("%s鍚堟牸",ss));
examStatusViewModel.updateItemExamResult(1,examStatus.getMap_id());
}
@@ -447,9 +447,11 @@
if (examStatus.get(0).getStartExam() != Constant.NONE_BEEN_START_EXAM){
btn_start_exam.setEnabled(false);
tv_stop.setEnabled(true);
+ iv_head.getDrawable().setLevel(1);
}else{
btn_start_exam.setEnabled(true);
tv_stop.setEnabled(false);
+ iv_head.getDrawable().setLevel(0);
}
exam_type = examStatus.get(0).getStartExam();
}
@@ -606,7 +608,6 @@
public void changKao() {
exam_type = 2;
- iv_head.getDrawable().setLevel(1);
ExamPlatformData.getInstance().setTrainingMode(ExamPlatformData.TRAINING_MODE);
ExamPlatformData.getInstance().setExamType(exam_type);
examStatusViewModel.updateStartExam(exam_type);
@@ -703,7 +704,7 @@
failedProjViewModel.deleteAll();
tv_total_score.setText(String.valueOf(currTotalScore));
- iv_head.getDrawable().setLevel(0);
+
ExamPlatformData.getInstance().getTTS().speak("缁撴潫璁粌");
examStatusViewModel.updateStartExam(Constant.NONE_BEEN_START_EXAM);
diff --git a/app/src/main/java/safeluck/drive/evaluation/httpmodule/AYApiService.java b/app/src/main/java/safeluck/drive/evaluation/httpmodule/AYApiService.java
new file mode 100644
index 0000000..68eda9e
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/httpmodule/AYApiService.java
@@ -0,0 +1,22 @@
+package safeluck.drive.evaluation.httpmodule;
+
+import okhttp3.ResponseBody;
+import retrofit2.Call;
+import retrofit2.http.Body;
+import retrofit2.http.HEAD;
+import retrofit2.http.Headers;
+import retrofit2.http.POST;
+
+public interface AYApiService {
+
+// 鍦板潃锛歨ttps://trainsim-api.aaej.cn/api/get/area
+// 鍙傛暟锛�
+// {
+// sn:"0314200100000002",
+// area_type:"place"
+// }
+// 璇存槑锛歅OST璇锋眰锛屽満鍦癮rea_type浼爌lace,杞︽ā鍨媋rea_type浼燾ar
+
+ @POST("api/get/area")
+ Call<ResponseBody> getMapsAndVehicleModel(@Body HttpRequetBean httpRequetBean);
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/httpmodule/GsonConverterFactory.java b/app/src/main/java/safeluck/drive/evaluation/httpmodule/GsonConverterFactory.java
new file mode 100644
index 0000000..25dbe90
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/httpmodule/GsonConverterFactory.java
@@ -0,0 +1,44 @@
+package safeluck.drive.evaluation.httpmodule;
+
+import com.google.gson.Gson;
+import com.google.gson.TypeAdapter;
+import com.google.gson.reflect.TypeToken;
+
+import org.jetbrains.annotations.NotNull;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
+
+import javax.annotation.Nullable;
+
+import okhttp3.RequestBody;
+import retrofit2.Converter;
+import retrofit2.Retrofit;
+
+public class GsonConverterFactory extends Converter.Factory {
+
+
+ @NotNull
+ public static Converter.Factory create() {
+ return create(new Gson());
+ }
+
+ private static Converter.Factory create(Gson gson) {
+ return new GsonConverterFactory(gson);
+ }
+
+ private final Gson gson;
+ private GsonConverterFactory(Gson gson){
+ if (gson == null){
+ throw new NullPointerException("gson == null");
+ }
+ this.gson = gson;
+ }
+
+ @Nullable
+ @Override
+ public Converter<?, RequestBody> requestBodyConverter(Type type, Annotation[] parameterAnnotations, Annotation[] methodAnnotations, Retrofit retrofit) {
+ TypeAdapter<?> adapter = gson.getAdapter(TypeToken.get(type));
+ return new MyGsonRequestBodyConverter<>(gson,adapter);
+ }
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/httpmodule/HttpRequetBean.kt b/app/src/main/java/safeluck/drive/evaluation/httpmodule/HttpRequetBean.kt
new file mode 100644
index 0000000..31b5ac9
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/httpmodule/HttpRequetBean.kt
@@ -0,0 +1,3 @@
+package safeluck.drive.evaluation.httpmodule
+
+data class HttpRequetBean(var sn:String,var area_type:String)
\ No newline at end of file
diff --git a/app/src/main/java/safeluck/drive/evaluation/httpmodule/MyGsonRequestBodyConverter.java b/app/src/main/java/safeluck/drive/evaluation/httpmodule/MyGsonRequestBodyConverter.java
new file mode 100644
index 0000000..cf2f999
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/httpmodule/MyGsonRequestBodyConverter.java
@@ -0,0 +1,45 @@
+package safeluck.drive.evaluation.httpmodule;
+
+import com.google.gson.Gson;
+import com.google.gson.TypeAdapter;
+import com.google.gson.stream.JsonWriter;
+
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.nio.charset.Charset;
+
+import javax.annotation.Nullable;
+
+import okhttp3.MediaType;
+import okhttp3.RequestBody;
+import okio.Buffer;
+import retrofit2.Converter;
+
+import static java.nio.charset.StandardCharsets.UTF_8;
+
+public class MyGsonRequestBodyConverter<T> implements Converter<T, RequestBody> {
+
+ private static final MediaType MEDIA_TYPE = MediaType.parse("application/json; charset=UTF-8");
+ private static final Charset UTF_8 = Charset.forName("UTF-8");
+
+ private final Gson gson;
+ private final TypeAdapter<T> adapter;
+
+ public MyGsonRequestBodyConverter(Gson gson, TypeAdapter<T> adapter) {
+ this.gson = gson;
+ this.adapter = adapter;
+ }
+
+ @Nullable
+ @Override
+ public RequestBody convert(T value) throws IOException {
+ Buffer buffer = new Buffer();
+ Writer writer = new OutputStreamWriter(buffer.outputStream(), UTF_8);
+ JsonWriter jsonWriter = gson.newJsonWriter(writer);
+ adapter.write(jsonWriter, value);
+ jsonWriter.close();
+ return RequestBody.create(MEDIA_TYPE, buffer.readByteString());
+
+ }
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/httpmodule/RetrofitCreator.kt b/app/src/main/java/safeluck/drive/evaluation/httpmodule/RetrofitCreator.kt
new file mode 100644
index 0000000..117ba49
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/httpmodule/RetrofitCreator.kt
@@ -0,0 +1,17 @@
+package safeluck.drive.evaluation.httpmodule
+
+import retrofit2.Retrofit
+
+class RetrofitCreator{
+ companion object{
+ private val BASE_URL = "https://trainsim-api.aaej.cn/"
+ private val RETROFIT_CLIENT = Retrofit.Builder().baseUrl(BASE_URL)
+ .addConverterFactory(GsonConverterFactory.create()).build()
+
+ private val REST_SERVICE = RETROFIT_CLIENT.create(AYApiService::class.java)
+
+ public fun getRestService()=REST_SERVICE
+ }
+
+
+}
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index a9e1add..cf25b67 100644
--- a/build.gradle
+++ b/build.gradle
@@ -11,9 +11,10 @@
roomVersion ='2.2.1'
workVersion ='2.2.0'
lifecycleVersion = '2.1.0'
+ retrofit_version = '2.8.1'
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.5.0'
+ classpath 'com.android.tools.build:gradle:3.5.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
--
Gitblit v1.8.0