From 46b6b43a0fe14f57f3c3749651de33e1581cdaaf Mon Sep 17 00:00:00 2001 From: jieyao Date: Wed, 25 Jun 2025 11:04:14 +0800 Subject: [PATCH] =?UTF-8?q?2.8=20=E7=BC=96=E5=86=99=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E9=80=9A=E7=94=A8=E7=9A=84=E5=B9=BF=E6=92=AD=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?=EF=BC=8Caction=EF=BC=9Achaoran.crtech.cn.pda.scan=20=20=20=20k?= =?UTF-8?q?ey=EF=BC=9Abarcode=EF=BC=9B=E5=B9=B6=E4=B8=94=E5=86=99=E4=BA=86?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E5=9B=BA=E5=AE=9A=E7=9A=84=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E7=A0=81=EF=BC=8C=E4=BD=86=E6=98=AF=E8=BF=99=E4=B8=AA=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=E7=A0=81=E5=8F=AA=E8=83=BD=E6=B3=A8=E5=86=8C=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E5=B0=8F=E6=97=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 3 +- .../business/activity/MainActivity.java | 2 + .../business/adapter/DefaultAdapter.java | 51 +++++++++++++++++++ .../business/utils/LocalAddressUtil.java | 7 +-- 4 files changed, 57 insertions(+), 6 deletions(-) create mode 100644 app/src/main/java/chaoran/business/adapter/DefaultAdapter.java diff --git a/app/build.gradle b/app/build.gradle index 6e2f208..07841c7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,7 +11,7 @@ android { minSdk 28 targetSdk 28 versionCode 1 - versionName "2.7" + versionName "2.8" // 1.0 IDATA广播模式处理 // 1.1 霍尼韦尔的监听修改(扫描网站二维码跳出程序,监听失效,调整)、斑马PDA广播模式设置 @@ -42,6 +42,7 @@ android { // 2、判断是否初始化成功(webview成功),如果已经加载完毕,那么apk不在拦截,调用js的方法让BS进行处理提示 // 3、根据官方文档,将code的判断进行修改,添加了一个网络错误的页面进行提示(并且添加了一个重新加载的按钮,执行webview重新加载) // 2.7 海康威视 mv-idp5204 适配广播模式;和之前的idp5102厂家code不一样 宿州市立医院-李德 + // 2.8 编写一个通用的广播模式,action:chaoran.crtech.cn.pda.scan key:barcode testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" ndk { abiFilters 'armeabi-v7a' diff --git a/app/src/main/java/chaoran/business/activity/MainActivity.java b/app/src/main/java/chaoran/business/activity/MainActivity.java index 2d976f8..a89764d 100644 --- a/app/src/main/java/chaoran/business/activity/MainActivity.java +++ b/app/src/main/java/chaoran/business/activity/MainActivity.java @@ -181,6 +181,8 @@ public class MainActivity extends AppCompatActivity implements ResultListener{ case QUALCOMM: adapter = new QualcommAdapter(this, this); break; + default: + adapter = new DefaultAdapter(this, this); } if (null != adapter) { adapter.start(); diff --git a/app/src/main/java/chaoran/business/adapter/DefaultAdapter.java b/app/src/main/java/chaoran/business/adapter/DefaultAdapter.java new file mode 100644 index 0000000..badfb7b --- /dev/null +++ b/app/src/main/java/chaoran/business/adapter/DefaultAdapter.java @@ -0,0 +1,51 @@ +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 DefaultAdapter implements Adapter { + private Context context; + private Strategy strategy; + private ResultListener resultListener; + + public DefaultAdapter(Context context, ResultListener resultListener) { + this.context = context; + this.resultListener = resultListener; + strategy = new DefaultAdapter.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("barcode")); + } + + @Override + public void executeStrategy(ResultListener resultListener) { + IntentFilter filter = new IntentFilter(); + filter.addAction("chaoran.crtech.cn.pda.scan"); + context.registerReceiver(this, filter); + } + + @Override + public void exclusiveStrategy() { + context.unregisterReceiver(this); + } + } +} diff --git a/app/src/main/java/chaoran/business/utils/LocalAddressUtil.java b/app/src/main/java/chaoran/business/utils/LocalAddressUtil.java index ad95f74..70fdfc0 100644 --- a/app/src/main/java/chaoran/business/utils/LocalAddressUtil.java +++ b/app/src/main/java/chaoran/business/utils/LocalAddressUtil.java @@ -69,9 +69,6 @@ public class LocalAddressUtil { @JavascriptInterface public String getMacAddress(){//可以兼容安卓7以下 SharedPreferences spf = context.getSharedPreferences("chaoran_mac", Context.MODE_PRIVATE); - SharedPreferences.Editor editor1 = context.getSharedPreferences("CrtechPdaConfig", Context.MODE_PRIVATE).edit(); - editor1.putString("checkMacTime", String.valueOf(System.currentTimeMillis() - 1 * 60 * 60 * 1000)); - editor1.commit(); String saveMac = spf.getString("chaoran_mac", ""); if (!"".equalsIgnoreCase(saveMac)) { return saveMac; @@ -243,9 +240,9 @@ public class LocalAddressUtil { return "error"; } if ("1".equals(sharedPreferences.getString("checkMacType", "0"))) { - // 判断是否是强行注册的,强行注册的只允许使用一天;一但判断到,就取消注册 + // 判断是否是强行注册的,强行注册的只允许使用一个小时;一但判断到,就取消注册 Long aLong = Long.valueOf(sharedPreferences.getString("checkMacTime", String.valueOf(System.currentTimeMillis()))); - if ((aLong + 1 * 60 * 1000) < System.currentTimeMillis()) { + if ((aLong + 1 * 60 * 60 * 1000) < System.currentTimeMillis()) { SharedPreferences.Editor edit = sharedPreferences.edit(); edit.putString("checkMac", "error"); edit.commit();