endian11
2021-01-28 15f3a0225ffda532c43da5737f7ef47fab868d05
服务绑定不成功时 不发送数据
3个文件已修改
63 ■■■■■ 已修改文件
app/src/main/java/safeluck/drive/evaluation/app.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/bean/AbsInitialData.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/app.java
@@ -2,14 +2,12 @@
import android.app.Application;
import android.content.Context;
import android.os.Environment;
import android.text.TextUtils;
import android.util.Log;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.work.Configuration;
import androidx.work.Data;
import androidx.work.OneTimeWorkRequest;
import androidx.work.WorkManager;
@@ -32,7 +30,6 @@
import org.json.JSONException;
import org.json.JSONObject;
import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -40,12 +37,9 @@
import safeluck.drive.evaluation.DB.WorkRoomDataBase;
import safeluck.drive.evaluation.DB.appstatusdb.AppStatusWorker;
import safeluck.drive.evaluation.DB.criterias.Criteria;
import safeluck.drive.evaluation.DB.criterias.CriteriaForI;
import safeluck.drive.evaluation.DB.criterias.CriteriaForIII;
import safeluck.drive.evaluation.DB.exam_status.ExamStatus;
import safeluck.drive.evaluation.DB.exam_status.ExamStatusOutWorker;
import safeluck.drive.evaluation.DB.failitems.FailedProj;
import safeluck.drive.evaluation.DB.failitems.LuKaoFailedProj;
import safeluck.drive.evaluation.DB.gps.GpsInfoWorker;
import safeluck.drive.evaluation.DB.route.RouteCross;
import safeluck.drive.evaluation.DB.route.RouteTriggerLine;
@@ -717,10 +711,12 @@
        MyLog.i(String.format("bindStatus = %d",code));
        if (code == 0){
            ExamPlatformData.getInstance().getTTS().speak("服务绑定成功");
            ExamPlatformData.getInstance().setServiceBindStatus(0);
            initData();
        }else{
            ExamPlatformData.getInstance().getTTS().speak("服务异常死亡");
            MyLog.i("服务异常死亡监听到之后,重置发送标志,然后发送数据");
            ExamPlatformData.getInstance().setServiceBindStatus(-1);
            AbsInitialData.getInstance().resethasSendInitData();
            AbsInitialData.getInstance().sendInitialData();
        }
app/src/main/java/safeluck/drive/evaluation/bean/AbsInitialData.java
@@ -98,34 +98,40 @@
    }
    ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
    public synchronized void sendInitialData(){
        if (checkPermission() && !hasSend){
            /**********只有权限满足(读写SD卡权限)和没有发送过的情况下才进行以下操作*********/
            hasSend = true;
            sendCarModelFile();
            sendRoadMapFile();
            sendItemsMapFile();
            sendJudgeArgs();
        if ( ExamPlatformData.getInstance().getServceBindStatus()==0){
            if (checkPermission() && !hasSend ){
                /**********只有权限满足(读写SD卡权限)和没有发送过的情况下才进行以下操作*********/
                hasSend = true;
                sendCarModelFile();
                sendRoadMapFile();
                sendItemsMapFile();
                sendJudgeArgs();
//需要延迟发送,因为前面有http请求
            executorService.schedule(()->{
                Log.i("AYJiaKao","延迟发送");
//                if (DataInitKt.getSendVehiSucc() && (DataInitKt.getSendMapSucc() || DataInitKt.getSendRoadMapSucc())){
                CThreadPoolExecutor.runInBackground(()->{
                    sendLightsAndExamStatus();
                });
                executorService.schedule(()->{
                    Log.i("AYJiaKao","延迟发送");
                    if (DataInitKt.getSendVehiSucc() && (DataInitKt.getSendMapSucc() || DataInitKt.getSendRoadMapSucc())){
                        CThreadPoolExecutor.runInBackground(()->{
                            sendLightsAndExamStatus();
                        });
//                }else{
                    MyLog.i(DataInitKt.getSendRoadMapSucc()?String.format("道路地图发送成功"):"道路地图发送失败");
                    MyLog.i(DataInitKt.getSendMapSucc()?String.format("场地地图发送成功"):"场地地图发送失败");
                    MyLog.i(DataInitKt.getSendVehiSucc()?String.format("车辆模型发送成功"):"车辆模型发送失败");
                    Toast.makeText(app.getAppContext(), "地图或车模型不存在,请检查平台配置或手工配置", Toast.LENGTH_SHORT).show();
//                }
                    }else{
                        MyLog.i(DataInitKt.getSendRoadMapSucc()?String.format("道路地图发送成功"):"道路地图发送失败");
                        MyLog.i(DataInitKt.getSendMapSucc()?String.format("场地地图发送成功"):"场地地图发送失败");
                        MyLog.i(DataInitKt.getSendVehiSucc()?String.format("车辆模型发送成功"):"车辆模型发送失败");
                        Toast.makeText(app.getAppContext(), "地图或车模型不存在,请检查平台配置或手工配置", Toast.LENGTH_SHORT).show();
                    }
                },2, TimeUnit.SECONDS);
            }else{
                MyLog.i(hasSend?"已经发送过了初始数据":"权限不允许,不能发送初始数据");
            }
        }else{
            MyLog.i(hasSend?"已经发送过了初始数据":"权限不允许,不能发送初始数据");
            MyLog.i("服务未绑定成功,不能发送初始数据");
        }
    }
app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java
@@ -619,4 +619,13 @@
    public String getMcuSN(){
        return mcuSN;
    }
    private int bindServiceStats= -2;// 0-服务绑定成功   -1,服务异常死亡  -2-默认值还未进行绑定服务操作;
    public void setServiceBindStatus(int i) {
        this.bindServiceStats = i;
    }
    public int getServceBindStatus(){
        return bindServiceStats;
    }
}