diff --git a/app/build.gradle b/app/build.gradle index 2be12eb..9163f78 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,7 +11,7 @@ android { minSdk 28 targetSdk 28 versionCode 1 - versionName "1.8" + versionName "1.9" // 1.0 IDATA广播模式处理 // 1.1 霍尼韦尔的监听修改(扫描网站二维码跳出程序,监听失效,调整)、斑马PDA广播模式设置 @@ -21,7 +21,8 @@ android { // 1.5 urovo DT50 Lite pda的支持 // 1.6 瑞星平板扫描,线程读取一半就返回处理 // 1.7 暴露一个方法,跳转到index初始化页面 - + // 1.8 霍尼韦尔EDA50p,在返回桌面,点击了新的扫描之后,出现再进入程序(新打开一样)无法扫描,从而导致问题,添加了一个stop2的方法,针对霍尼韦尔eda50p,不进行销毁,在真正销毁的方法关闭服务,还是存在程序返回桌面无法扫描问题,但是退出程序之后,新打开程序可以扫描 + // 1.9 海康威视 mv-idp5102 适配广播模式 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 a5ae1fb..d9408b4 100644 --- a/app/src/main/java/chaoran/business/BrandEnum.java +++ b/app/src/main/java/chaoran/business/BrandEnum.java @@ -21,7 +21,8 @@ public enum BrandEnum { HONEY_WELL_EDA51("霍尼维尔EDA51", "honeywell"), ZEBRA_TECHNOLOGIES("斑马TP26CK", "zebra technologies"), SEUIC("东集", "seuic"), - ALPS("阿尔卑斯", "alps"); + ALPS("阿尔卑斯", "alps"), + HKWS("海康威视", "mv-idp5102"); private String name; private String code; diff --git a/app/src/main/java/chaoran/business/activity/MainActivity.java b/app/src/main/java/chaoran/business/activity/MainActivity.java index 3b08f46..91e1a6e 100644 --- a/app/src/main/java/chaoran/business/activity/MainActivity.java +++ b/app/src/main/java/chaoran/business/activity/MainActivity.java @@ -106,6 +106,8 @@ public class MainActivity extends AppCompatActivity implements ResultListener{ adapter = new LachesisAdapter(this, this); case UROVO: adapter = new UrovoAdapter(this, this); + case HKWS: + adapter = new HkwsAdapter(this, this); } if (null != adapter) { adapter.start(); diff --git a/app/src/main/java/chaoran/business/adapter/HkwsAdapter.java b/app/src/main/java/chaoran/business/adapter/HkwsAdapter.java new file mode 100644 index 0000000..51d7878 --- /dev/null +++ b/app/src/main/java/chaoran/business/adapter/HkwsAdapter.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 HkwsAdapter implements Adapter { + private Context context; + private ResultListener resultListener; + private Strategy strategy; + + + public HkwsAdapter(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("barcode")); + } + + @Override + public void executeStrategy(ResultListener resultListener) { + IntentFilter filter = new IntentFilter(); + filter.addAction("android.intent.ACTION_SCAN_OUTPUT"); + filter.setPriority(2); + context.registerReceiver(this, filter); + } + + @Override + public void exclusiveStrategy() { + context.unregisterReceiver(this); + } + } +}