From 46199cda0fb9640bf594929420da8aeb946aa45d Mon Sep 17 00:00:00 2001 From: wujie Date: Mon, 21 Aug 2023 13:35:56 +0800 Subject: [PATCH] =?UTF-8?q?=E8=81=94=E6=96=B0=20pda=E7=9A=84=E6=94=AF?= =?UTF-8?q?=E6=8C=81=20=E5=B7=B2=E7=BB=8F=20adapter=20=E5=85=B3=E9=97=AD?= =?UTF-8?q?=E7=9A=84=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 3 +- .../main/java/chaoran/business/BrandEnum.java | 1 + .../business/activity/MainActivity.java | 12 +++-- .../business/adapter/LachesisAdapter.java | 53 +++++++++++++++++++ 4 files changed, 65 insertions(+), 4 deletions(-) create mode 100644 app/src/main/java/chaoran/business/adapter/LachesisAdapter.java diff --git a/app/build.gradle b/app/build.gradle index 7a8d43e..6326af7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,12 +11,13 @@ android { minSdk 28 targetSdk 28 versionCode 1 - versionName "1.3" + versionName "1.4" // 1.0 IDATA广播模式处理 // 1.1 霍尼韦尔的监听修改(扫描网站二维码跳出程序,监听失效,调整)、斑马PDA广播模式设置 // 1.2 霍尼韦尔EDA56、jdk11,gradle7.3、海信PDA广播支持 // 1.3 东集 pda的支持 + // 1.4 联新 pda的支持 已经 adapter 关闭的判断 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/java/chaoran/business/BrandEnum.java b/app/src/main/java/chaoran/business/BrandEnum.java index f75bd53..5d1ce6f 100644 --- a/app/src/main/java/chaoran/business/BrandEnum.java +++ b/app/src/main/java/chaoran/business/BrandEnum.java @@ -11,6 +11,7 @@ package chaoran.business; public enum BrandEnum { //枚举名即为valueOf() HISENSE("海信", "hisense"), + LACHESIS("联新", "lachesis"), UROBO("优博讯", "urobo"), ROCKCHIP("瑞芯微电子", "rockchip"), TEST("测试设备", "test"), diff --git a/app/src/main/java/chaoran/business/activity/MainActivity.java b/app/src/main/java/chaoran/business/activity/MainActivity.java index 6f25461..b3e4539 100644 --- a/app/src/main/java/chaoran/business/activity/MainActivity.java +++ b/app/src/main/java/chaoran/business/activity/MainActivity.java @@ -102,6 +102,8 @@ public class MainActivity extends AppCompatActivity implements ResultListener{ adapter = new ZebraAdapter(this, this); case HISENSE: adapter = new HisenseAdapter(this, this); + case LACHESIS: + adapter = new LachesisAdapter(this, this); } if (null != adapter) { adapter.start(); @@ -203,8 +205,10 @@ public class MainActivity extends AppCompatActivity implements ResultListener{ //webView.loadUrl(url()); // voiceEngine.reload(); super.onResume(); - adapter.stop(); - adapter.start(); + if (adapter != null) { + adapter.stop(); + adapter.start(); + } } @Override @@ -214,7 +218,9 @@ public class MainActivity extends AppCompatActivity implements ResultListener{ } @Override protected void onDestroy() { - adapter.stop(); + if (adapter != null) { + adapter.stop(); + } super.onDestroy(); if (diPlayer != null) { diPlayer.stop(); diff --git a/app/src/main/java/chaoran/business/adapter/LachesisAdapter.java b/app/src/main/java/chaoran/business/adapter/LachesisAdapter.java new file mode 100644 index 0000000..de5f32d --- /dev/null +++ b/app/src/main/java/chaoran/business/adapter/LachesisAdapter.java @@ -0,0 +1,53 @@ +package chaoran.business.adapter; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; + +import chaoran.business.activity.ResultListener; +import chaoran.business.strategy.Strategy; + +public class LachesisAdapter implements Adapter { + private Context context; + private ResultListener resultListener; + private Strategy strategy; + + + public LachesisAdapter(Context context, ResultListener resultListener) { + this.context = context; + this.resultListener = resultListener; + strategy = new Receiver(); + } + + @Override + public void start() { + strategy.executeStrategy(resultListener); + } + + @Override + public void stop() { + strategy.exclusiveStrategy(); + } + + public class Receiver extends BroadcastReceiver implements Strategy { + + @Override + public void onReceive(Context context, Intent intent) { + resultListener.result(intent.getStringExtra("data")); + } + + @Override + public void executeStrategy(ResultListener resultListener) { + IntentFilter filter = new IntentFilter(); + filter.addAction("chaoran"); + filter.setPriority(2); + context.registerReceiver(this, filter); + } + + @Override + public void exclusiveStrategy() { + context.unregisterReceiver(this); + } + } +}