From cca5f79b3af36e5a908c5dfecbd30110febe3baa Mon Sep 17 00:00:00 2001 From: 陈力 <chenli@lotaai.com> Date: 星期五, 09 六月 2023 20:58:09 +0800 Subject: [PATCH] 增加mqtt --- app/src/main/java/com/lotaai/canguiayw/SettingFragment.java | 164 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 152 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/lotaai/canguiayw/SettingFragment.java b/app/src/main/java/com/lotaai/canguiayw/SettingFragment.java index fe23641..dc4c622 100644 --- a/app/src/main/java/com/lotaai/canguiayw/SettingFragment.java +++ b/app/src/main/java/com/lotaai/canguiayw/SettingFragment.java @@ -16,19 +16,40 @@ import android.view.inputmethod.InputMethodManager; import android.widget.AdapterView; import android.widget.ArrayAdapter; +import android.widget.Button; +import android.widget.EditText; import android.widget.Spinner; import androidx.fragment.app.Fragment; +import com.alibaba.fastjson.JSONObject; import com.bin.david.form.core.SmartTable; +import com.blankj.utilcode.util.CacheDiskUtils; +import com.blankj.utilcode.util.DeviceUtils; import com.blankj.utilcode.util.KeyboardUtils; import com.blankj.utilcode.util.LogUtils; +import com.lotaai.canguiayw.common.HttpLoggerInterceptor; +import com.lotaai.canguiayw.common.HttpUrlDefine; +import com.lotaai.canguiayw.common.SettingConfig; +import com.pranavpandey.android.dynamic.toasts.DynamicToast; import org.angmarch.views.NiceSpinner; import org.angmarch.views.SpinnerTextFormatter; +import java.io.IOException; import java.util.ArrayList; import java.util.List; +import java.util.concurrent.TimeUnit; + +import android_serialport_api.SerialPortFinder; +import okhttp3.Call; +import okhttp3.Callback; +import okhttp3.FormBody; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import okhttp3.logging.HttpLoggingInterceptor; public class SettingFragment extends Fragment { @@ -36,6 +57,11 @@ private Context context; private SmartTable setTable; private NiceSpinner chuanKouSpinner; + private EditText deviceCode; + private EditText devicePwd; + private Button jihuoBtn; + private Button saveBtn; + List<String> list = new ArrayList<String>(); @Override public void onCreate(Bundle savedInstanceState) { @@ -53,6 +79,7 @@ if (root == null) { root = inflater.inflate(R.layout.framgment_setting, container, false); } + DynamicToast.Config.getInstance().setTextSize(30).apply(); context = container.getContext(); initSpinner(); @@ -64,36 +91,149 @@ }; // 将myTouchListener注册到分发列表 - ((ManageActivity)this.getActivity()).registerMyTouchListener(myTouchListener); + ((ManageActivity) this.getActivity()).registerMyTouchListener(myTouchListener); + //初始化 + deviceCode = root.findViewById(R.id.deviceCode); + devicePwd = root.findViewById(R.id.devicePwd); + deviceCode.setText(CacheDiskUtils.getInstance().getString(SettingConfig.getInstance().Cache_Device_Code)); + // devicePwd.setText(CacheDiskUtils.getInstance().getString(SettingConfig.getInstance().Cache_Device_Pwd)); + jihuoBtn = root.findViewById(R.id.jihuo); + saveBtn = root.findViewById(R.id.save); + jihuoBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + String code = deviceCode.getText().toString().trim(); + String pwd = devicePwd.getText().toString().trim(); + if ("".equals(code) || "".equals(pwd)) { + DynamicToast.makeError(context, "设备号和设备秘钥必填", 3).show(); + return; + } + active(); + } + }); + saveBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + DynamicToast.Config.getInstance().setTextSize(30).apply(); + String code = deviceCode.getText().toString().trim(); + String pwd = devicePwd.getText().toString().trim(); + String tty = list.get(chuanKouSpinner.getSelectedIndex()); + if ("".equals(code)) { + DynamicToast.makeError(context, "设备号必填", 3).show(); + } else { + CacheDiskUtils.getInstance().put(SettingConfig.getInstance().Cache_Device_Code, code); +// CacheDiskUtils.getInstance().put(SettingConfig.getInstance().Cache_Device_Pwd,pwd); + CacheDiskUtils.getInstance().put(SettingConfig.getInstance().Cache_Device_Tty, tty); + DynamicToast.makeSuccess(context, "保存成功", 3).show(); + } + } + }); return root; } - public void initSpinner(){ + public void active() { + HttpLoggerInterceptor loggingInterceptor = new HttpLoggerInterceptor(true); + OkHttpClient client = new OkHttpClient.Builder() + .connectTimeout(20, TimeUnit.SECONDS)//响应时间,读取时间 + .readTimeout(20, TimeUnit.SECONDS) + .callTimeout(20, TimeUnit.SECONDS) + .addInterceptor(loggingInterceptor)//添加日志拦截器 + .build(); + + RequestBody body = new FormBody.Builder() + .add("equipmentCode", CacheDiskUtils.getInstance().getString(SettingConfig.getInstance().Cache_Device_Code)) + .add("equipmentSecret", devicePwd.getText().toString()) + .add("equipmentUid", DeviceUtils.getUniqueDeviceId()).build(); + final Request request = new Request.Builder() + .url(HttpUrlDefine.equipmentBind) + .addHeader("language", "zh-CN") + .post(body) + .build(); + client.newCall(request).enqueue(new Callback() { + @Override + public void onFailure(Call call, IOException e) { + Message msg = new Message(); + msg.what = 0; + msg.obj = "激活失败"; + showHandler.sendMessage(msg); + LogUtils.e(e); + } + + @Override + public void onResponse(Call call, Response response) throws IOException { + String result = response.body().string(); + LogUtils.i("获取到的数据:"+result); + JSONObject obj = JSONObject.parseObject(result); + if ("0".equals(obj.getString("code"))) { + JSONObject dataObj = obj.getJSONObject("data"); + String name = dataObj.getString("name"); + Message msg = new Message(); + msg.what = 1; + msg.obj = "激活成功!" + name; + showHandler.sendMessage(msg); + } else { + Message msg = new Message(); + msg.what = 0; + msg.obj = "激活失败:" + obj.getString("msg"); + showHandler.sendMessage(msg); + } + } + }); + } + + private Handler showHandler = new Handler() { + @Override + public void handleMessage(Message msg) { + if (msg.what == 0) { + DynamicToast.makeError(context, msg.obj.toString(), 3).show(); + } else if (msg.what == 1) { + DynamicToast.makeSuccess(context, msg.obj.toString(), 3).show(); + } else { + DynamicToast.makeWarning(context, msg.obj.toString(), 3).show(); + } + } + }; + + public void initSpinner() { chuanKouSpinner = root.findViewById(R.id.chuankouhao); chuanKouSpinner.setBackgroundResource(R.drawable.round_editstyle); chuanKouSpinner.setTextSize(30); + String ty = CacheDiskUtils.getInstance().getString(SettingConfig.getInstance().Cache_Device_Tty); + int select = 0; +// SerialPortFinder finder = new SerialPortFinder(); +// String[] ttysPath = finder.getAllDevicesPath(); +// int p = 0; +// for (String sp : ttysPath){ +// if (sp.equals(ty)){ +// select = p; +// } +// list.add(sp); +// p++; +// } - final List<String> list = new ArrayList<String>(); - for (int i = 1; i<10 ;i++){ - list.add("ttyS" + i); + list.clear(); + for (int pp = 0; pp < 6; pp++) { + list.add("/dev/ttyS" + pp); + if (ty!=null && ty.equals("/dev/ttyS" + pp)) { + select = pp; + } } chuanKouSpinner.attachDataSource(list); chuanKouSpinner.addOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { - LogUtils.i(list.get(position)); + LogUtils.i(list.get(position) + "position:" + position); } }); + chuanKouSpinner.setSelectedIndex(select); } - public static void HideKeyboard(View v) - { - InputMethodManager imm = ( InputMethodManager ) v.getContext( ).getSystemService( Context.INPUT_METHOD_SERVICE ); - if ( imm.isActive( ) ) { - imm.hideSoftInputFromWindow( v.getApplicationWindowToken( ) , 0 ); - + public static void HideKeyboard(View v) { + InputMethodManager imm = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); + if (imm.isActive()) { + imm.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0); } } -- Gitblit v1.7.1