diff --git a/.idea/MarsCodeWorkspaceAppSettings.xml b/.idea/MarsCodeWorkspaceAppSettings.xml
new file mode 100644
index 0000000..cd9c4c9
--- /dev/null
+++ b/.idea/MarsCodeWorkspaceAppSettings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index d563155..96cfa5e 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -21,6 +21,11 @@
android:name=".SettingsActivity"
android:exported="false"
android:label="@string/title_activity_settings" />
+
+
+
{
intent.putExtra("type",true);
@@ -40,6 +41,12 @@ public class HomeActivity extends BaseActivity {
button4.setOnClickListener(v -> {
startActivity(new Intent(this, SettingsActivity.class));
});
+
+ button3.setOnClickListener(v -> {
+ startActivity(new Intent(this, IntentSelectActivity.class));
+ });
+
+
}
@Override
diff --git a/app/src/main/java/com/example/writeepc/IntentSelectActivity.java b/app/src/main/java/com/example/writeepc/IntentSelectActivity.java
new file mode 100644
index 0000000..94fc02c
--- /dev/null
+++ b/app/src/main/java/com/example/writeepc/IntentSelectActivity.java
@@ -0,0 +1,230 @@
+package com.example.writeepc;
+
+import android.annotation.SuppressLint;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.Bundle;
+import android.os.Handler;
+import android.text.Editable;
+import android.text.TextWatcher;
+import android.util.Log;
+import android.view.View;
+import android.widget.Button;
+
+import androidx.databinding.DataBindingUtil;
+
+import com.example.writeepc.adapter.MyMesInfoAdapter;
+import com.example.writeepc.base.BaseActivity;
+import com.example.writeepc.base.okgo.MyRecultCall;
+import com.example.writeepc.base.okgo.MyResult;
+import com.example.writeepc.been.MESInfo;
+import com.example.writeepc.databinding.ActivityIntentSelectBinding;
+import com.example.writeepc.utils.SharedPreferencesUtils;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParser;
+import com.lzy.okgo.OkGo;
+import com.lzy.okgo.model.Response;
+import com.uhf.api.cls.Reader;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import okhttp3.MediaType;
+import okhttp3.RequestBody;
+
+public class IntentSelectActivity extends BaseActivity {
+ private final Handler handler = new Handler();
+ public MediaType JSON = MediaType.parse("application/json; charset=utf-8");
+ private ActivityIntentSelectBinding binding;
+ private MyMesInfoAdapter adapter;
+ private Button traceSanButton;
+ private boolean sanState = true;
+ private Runnable runnable;
+ private Runnable tokenRunnable;
+ private MyKeyReceiver keyReceiver;
+ private String ip;
+ private String token;
+
+ @SuppressLint("UnspecifiedRegisterReceiverFlag")
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ binding = DataBindingUtil.setContentView(this, R.layout.activity_intent_select);
+ initUHFRManager1();
+ // 设置功率
+ String powerTrace1 = SharedPreferencesUtils.getstring("powerTrace", "22");
+ int powerTrace = Integer.parseInt(powerTrace1);
+ Reader.READER_ERR readerErr = uhfrManager.setPower(powerTrace, powerTrace);
+ Log.e("TAG", "追溯设置功率" + powerTrace1 + ":" + readerErr.name());
+ initDialog();
+ adapter = new MyMesInfoAdapter(this);
+ binding.setAdapter(adapter);
+ traceSanButton = binding.traceSanButton;
+ runnable = () -> {
+ if (sanState) {
+ handler.removeCallbacks(runnable);
+ } else {
+ readEPC(12);
+ handler.postDelayed(runnable, 1000);
+ }
+ };
+ tokenRunnable = () -> {
+ requestToken();
+ };
+ handler.postDelayed(tokenRunnable, 0);
+ keyReceiver = new MyKeyReceiver();
+ IntentFilter intentFilter = new IntentFilter();
+ intentFilter.addAction("android.rfid.FUN_KEY");
+ registerReceiver(keyReceiver, intentFilter);
+ String ACTION_CLOSE_SCAN = "com.rfid.CLOSE_SCAN";
+ Intent toKillService = new Intent();
+ toKillService.setAction(ACTION_CLOSE_SCAN);
+ sendBroadcast(toKillService);
+ binding.dataEpc.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ if (s.length() == 24) {
+ haohuaMesSelect(s.toString());
+ }
+
+ }
+ });
+ ip = SharedPreferencesUtils.getstring("ip", "https://rfidpub.haohuatire.com:7443");
+ }
+
+ private void requestToken() {
+ Map map = new HashMap<>();
+ map.put("AppId", "app-20250704032545-nmmhn8jw");
+ map.put("AppSecret", "dXJZQKubbqhSPCugtA49rsDGACmN5CMD4ItTfP11+DA=");
+ OkGo.post(ip + "/UMInterface/Auth/AccessToken").upRequestBody(RequestBody.create(JSON, gson.toJson(map))).execute(new MyRecultCall(dialog, this) {
+ @Override
+ public void onSuccess(Response response) {
+ super.onSuccess(response);
+ MyResult body = response.body();
+ if (body.getCode() == 200) {
+ String dataJson = body.getDataJson();
+ JsonObject jsonObject = JsonParser.parseString(dataJson).getAsJsonObject();
+ token = jsonObject.get("Token").getAsString();
+ Log.e("TAG", "onSuccess:token=" + token);
+ binding.traceSanButton1.setVisibility(View.GONE);
+ handler.postDelayed(tokenRunnable, 60 * 1000 * 90);
+ } else {
+ tipsDialog.setTip(false, body.getInfo());
+ tipsDialog.show();
+ binding.traceSanButton1.setVisibility(View.VISIBLE);
+ }
+
+ }
+ });
+ }
+
+ public void intentRequestToken(View view) {
+ requestToken();
+ }
+
+ public void dataReadRFID(View view) {
+ if (sanState) {
+ handler.postDelayed(runnable, 0);
+ sanState = false;
+ traceSanButton.setBackgroundResource(R.drawable.button_bg2);
+ traceSanButton.setText("停止扫描");
+ } else {
+ sanState = true;
+ handler.removeCallbacks(runnable);
+ traceSanButton.setBackgroundResource(R.drawable.button_bg1);
+ traceSanButton.setText("开始扫描");
+ }
+
+
+ }
+
+ @Override
+ protected void readTidReault(boolean readState, String result, byte[] rdata) {
+ super.readTidReault(readState, result, rdata);
+ binding.dataEpc.setText(result);
+
+ if (readState) {
+ dataReadRFID(null);
+
+
+ }
+ }
+
+ private void haohuaMesSelect(String result) {
+ OkGo.post(ip + "/UMInterface/RFID/sellTyreTracingBack")
+ .headers("Token", token)
+ .params("rfid", result).execute(new MyRecultCall(dialog, this) {
+ @SuppressLint("NotifyDataSetChanged")
+ @Override
+ public void onSuccess(Response response) {
+ super.onSuccess(response);
+ MyResult body = response.body();
+ try {
+ if (body.getCode() == 200) {
+ String dataJson = body.getDataJson();
+ if (dataJson == null || dataJson.equals("[]")) {
+ tipsDialog.setTip(false, "未查询到相关信息");
+ tipsDialog.show();
+ adapter.setList(null);
+ return;
+ }
+ dataJson = dataJson.replace("[{", "").replace("\"", "").trim();
+ String[] split = dataJson.split(",");
+ List mesInfos = new ArrayList<>();
+ for (String item : split) {
+ String[] split1 = item.split(":");
+ MESInfo mesInfo = new MESInfo();
+ mesInfo.setTitle(split1[0]);
+ mesInfo.setInfo(split1[1]);
+ mesInfos.add(mesInfo);
+ }
+ ;
+ adapter.setList(mesInfos);
+
+ } else {
+ tipsDialog.setTip(false, body.getInfo());
+ tipsDialog.show();
+ adapter.setList(null);
+
+ }
+ } catch (Exception e) {
+ tipsDialog.setTip(false, "接口返回信息异常,解析失败");
+ tipsDialog.show();
+
+ }
+ adapter.notifyDataSetChanged();
+ }
+ });
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ unregisterReceiver(keyReceiver);
+ }
+
+ private class MyKeyReceiver extends BroadcastReceiver {
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ var keydown = intent.getBooleanExtra("keydown", false);
+ if (!keydown) {
+ dataReadRFID(null);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/writeepc/SettingsActivity.java b/app/src/main/java/com/example/writeepc/SettingsActivity.java
index bb1e73a..1c7194d 100644
--- a/app/src/main/java/com/example/writeepc/SettingsActivity.java
+++ b/app/src/main/java/com/example/writeepc/SettingsActivity.java
@@ -32,7 +32,7 @@ public class SettingsActivity extends AppCompatActivity {
List powerList = Arrays.asList(getResources().getStringArray(R.array.power));
powerBinding.setSelection(powerList.indexOf(bindingPower));
powerTrace.setSelection(powerList.indexOf(tracePower));
- settingIp.setText(SharedPreferencesUtils.getstring("ip", null));
+ settingIp.setText(SharedPreferencesUtils.getstring("ip", "https://rfidpub.haohuatire.com:7443"));
}
public void saveInfo(View view) {
diff --git a/app/src/main/java/com/example/writeepc/base/MyApplication.java b/app/src/main/java/com/example/writeepc/base/MyApplication.java
index 56fb2bc..3096f14 100644
--- a/app/src/main/java/com/example/writeepc/base/MyApplication.java
+++ b/app/src/main/java/com/example/writeepc/base/MyApplication.java
@@ -62,9 +62,9 @@ public class MyApplication extends Application {
HttpsUtils.SSLParams sslParams1 = HttpsUtils.getSslSocketFactory(); // 方法一:信任所有证书,不安全有风险
builder.sslSocketFactory(sslParams1.sSLSocketFactory, sslParams1.trustManager);
builder.addInterceptor(loggingInterceptor);
- builder.readTimeout(6000, TimeUnit.MILLISECONDS); // 全局的读取超时时间
- builder.writeTimeout(6000, TimeUnit.MILLISECONDS); // 全局的写入超时时间
- builder.connectTimeout(6000, TimeUnit.MILLISECONDS); // 全局的连接超时时间
+ builder.readTimeout(10000, TimeUnit.MILLISECONDS); // 全局的读取超时时间
+ builder.writeTimeout(10000, TimeUnit.MILLISECONDS); // 全局的写入超时时间
+ builder.connectTimeout(10000, TimeUnit.MILLISECONDS); // 全局的连接超时时间
builder.cookieJar(new CookieJarImpl(new MemoryCookieStore())); // 使用内存保持cookie,app退出后,cookie消失
OkGo.getInstance().init(this).setOkHttpClient(builder.build()) // 建议设置OkHttpClient,不设置将使用默认的
.setCacheMode(CacheMode.NO_CACHE) // 全局统一缓存模式,默认不使用缓存,可以不传
diff --git a/app/src/main/res/layout/activity_home.xml b/app/src/main/res/layout/activity_home.xml
index ce53892..5e60b23 100644
--- a/app/src/main/res/layout/activity_home.xml
+++ b/app/src/main/res/layout/activity_home.xml
@@ -23,7 +23,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
- android:orientation="horizontal">
+ android:orientation="horizontal"
+ android:visibility="gone">
+
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_intent_select.xml b/app/src/main/res/layout/activity_intent_select.xml
new file mode 100644
index 0000000..bf0c55c
--- /dev/null
+++ b/app/src/main/res/layout/activity_intent_select.xml
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/settings_activity.xml b/app/src/main/res/layout/settings_activity.xml
index b0aa6db..0edc765 100644
--- a/app/src/main/res/layout/settings_activity.xml
+++ b/app/src/main/res/layout/settings_activity.xml
@@ -29,7 +29,7 @@
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_marginTop="20dp"
-
+android:visibility="gone"
android:orientation="horizontal">
-
+
-
+