lizhanwei
2020-03-16 6e512f99ae6d56f52cd79ff7ea7245a431be4dbb
修改判断消息ID可能导致崩溃的bug
3个文件已修改
40 ■■■■■ 已修改文件
app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusWorker.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/app.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusWorker.java
@@ -24,12 +24,11 @@
    private static final String TAG = "AppStatusWorker";
    private AppStatusDao appStatusDao;
    private int lastSatNum = 0;
    private int lastQf = 0;
    public AppStatusWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) {
        super(context, workerParams);
        MyLog.d(TAG,"初始化AppStatusWorker");
        MyLog.i("初始化AppStatusWorker");
        appStatusDao = WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getAppStatusDao();
    }
@@ -38,7 +37,7 @@
    public Result doWork() {
        String[] str = getInputData().getStringArray(Constant.APP_STATUS);
        JSONObject jsonObject = null;
        MyLog.i(PlatFormConstant.TAG,"AppStatusWorker:"+str[0]+": "+str[1]);
        MyLog.i("AppStatusWorker:"+str[0]+": "+str[1]);
        try {
            jsonObject = new JSONObject(str[1]);
            switch (str[0]) {
@@ -58,18 +57,10 @@
                case Constant.RTK_INFO_SAT_QF:
                    int qf = jsonObject.getInt("qf");
                    int satNum = jsonObject.getInt("sat_num");
                    if (qf==lastQf){
                        Log.i(TAG,"解状态和上次的一样,不保存数据库"+qf);
                    }else{
                        lastQf = qf;
                        appStatusDao.updatedQf(qf);
                    }
                    if (satNum==lastSatNum){
                        Log.i(TAG,"卫星颗数和上次的一样,不保存数据库"+lastSatNum);
                    }else{
                        appStatusDao.updatedSatNum(satNum);
                        lastSatNum = satNum;
                    }
                    break;
app/src/main/java/safeluck/drive/evaluation/app.java
@@ -314,7 +314,7 @@
                    jsonObject = new JSONObject(json);
                    int qf = jsonObject.getInt("qf");
                    int satNum = jsonObject.getInt("sat_num");
                    if (lastSatEqualNow(satNum)){
                    if (lastSatEqualNow(satNum)&&lastQfEqualNow(qf)){
                    }else{
                        String[] rtk_strs = new String[2];
@@ -324,16 +324,7 @@
                        OneTimeWorkRequest appStatusWorker = new OneTimeWorkRequest.Builder(AppStatusWorker.class).setInputData(rtkInfoData).build();
                        WorkManager.getInstance(getApplicationContext()).enqueue(appStatusWorker);
                    }
                    if (lastQfEqualNow(qf)){
                    }else{
                        String[] rtk_strs = new String[2];
                        rtk_strs[0] = Constant.RTK_INFO_SAT_QF;
                        rtk_strs[1] = json;
                        Data rtkInfoData = new Data.Builder().putStringArray(Constant.APP_STATUS,rtk_strs).build();
                        OneTimeWorkRequest appStatusWorker = new OneTimeWorkRequest.Builder(AppStatusWorker.class).setInputData(rtkInfoData).build();
                        WorkManager.getInstance(getApplicationContext()).enqueue(appStatusWorker);
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java
@@ -11,6 +11,7 @@
import com.anyun.im_lib.interf.IMSClientInteface;
import com.anyun.im_lib.util.ByteUtil;
import com.google.gson.Gson;
import com.safeluck.aykj.utils.ArrayUtils;
import com.safeluck.aykj.utils.BytesUtils;
import java.util.Map;
@@ -124,8 +125,11 @@
                        Log.e(TAG, "run: 发送消息失败,未初始化连接NettyTcp");
                    }
                }else{
                    JK2019MessageBase jk2019MessageBase = MessageManager.get(msg.toString());
                    if ((jk2019MessageBase instanceof JKMessage0100) || (jk2019MessageBase instanceof JKMessage0101)){
//                    JK2019MessageBase jk2019MessageBase = MessageManager.get(msg.toString());
                    byte[] msgidbytes= ArrayUtils.subArray(msg.toBytes(),2,2);
                    String msgid = BytesUtils.bytesToHexString(msgidbytes);
                    Log.i(TAG, "run: msgid="+msgid);
                    if ((msgid.equalsIgnoreCase("0100")) || (msgid.equalsIgnoreCase("0101"))){
                        if (IMSClientBootstrap.getInstance().isActive()){
                            IMSClientBootstrap.getInstance().sendMessage(messageEscaper.escape(msg.toBytes()));
@@ -133,7 +137,7 @@
                            Log.e(TAG, "run: 发送消息失败,未初始化连接NettyTcp");
                        }
                    }else{
                        MyLog.i(PlatFormConstant.TAG,"登录未成功,不能发送消息="+BytesUtils.bytesToHexString(ByteUtil.intGetBytes(jk2019MessageBase.messageId)));
                        MyLog.i(PlatFormConstant.TAG,"登录未成功,不能发送消息="+msgid);
                    }
                }