diff --git a/app/build.gradle b/app/build.gradle index ea68322..483d502 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,10 +8,13 @@ android { defaultConfig { applicationId "chaoran.business.pda" - minSdkVersion 26 - targetSdkVersion 29 + minSdk 28 + targetSdk 28 versionCode 1 - versionName "1.0" + versionName "1.1" + + // 1.0 IDATA广播模式处理 + // 1.1 霍尼韦尔的监听修改(扫描网站二维码跳出程序,监听失效,调整)、斑马PDA广播模式设置 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 fd9a253..e87c45c 100644 --- a/app/src/main/java/chaoran/business/BrandEnum.java +++ b/app/src/main/java/chaoran/business/BrandEnum.java @@ -16,6 +16,7 @@ public enum BrandEnum { IDATA("匿名设备", "idata"), HONEY_WELL_EDA50P("霍尼维尔EDA50P", "mobiwire"), HONEY_WELL_EDA51("霍尼维尔EDA51", "honeywell"), + ZEBRA_TECHNOLOGIES("斑马TP26CK", "zebra technologies"), ALPS("阿尔卑斯", "alps"); private String name; diff --git a/app/src/main/java/chaoran/business/activity/MainActivity.java b/app/src/main/java/chaoran/business/activity/MainActivity.java index 1bea598..ea42a64 100644 --- a/app/src/main/java/chaoran/business/activity/MainActivity.java +++ b/app/src/main/java/chaoran/business/activity/MainActivity.java @@ -90,6 +90,8 @@ public class MainActivity extends AppCompatActivity implements ResultListener{ case HONEY_WELL_EDA51: adapter = new HoneywellAdapter(this, this); break; + case ZEBRA_TECHNOLOGIES: + adapter = new ZebraAdapter(this, this); } if (null != adapter) { adapter.start(); @@ -191,6 +193,8 @@ public class MainActivity extends AppCompatActivity implements ResultListener{ //webView.loadUrl(url()); // voiceEngine.reload(); super.onResume(); + adapter.stop(); + adapter.start(); } @Override diff --git a/app/src/main/java/chaoran/business/adapter/HoneywellAdapter.java b/app/src/main/java/chaoran/business/adapter/HoneywellAdapter.java index b2934d4..89a70d0 100644 --- a/app/src/main/java/chaoran/business/adapter/HoneywellAdapter.java +++ b/app/src/main/java/chaoran/business/adapter/HoneywellAdapter.java @@ -33,6 +33,7 @@ public class HoneywellAdapter implements Adapter { @Override public void stop() { + new ScanServiceEDA50P().onDestroy(); strategy.exclusiveStrategy(); } diff --git a/app/src/main/java/chaoran/business/adapter/ZebraAdapter.java b/app/src/main/java/chaoran/business/adapter/ZebraAdapter.java new file mode 100644 index 0000000..4b94762 --- /dev/null +++ b/app/src/main/java/chaoran/business/adapter/ZebraAdapter.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 ZebraAdapter implements Adapter { + private Context context; + private ResultListener resultListener; + private Strategy strategy; + + + public ZebraAdapter(Context context, ResultListener resultListener) { + this.context = context; + this.resultListener = resultListener; + strategy = new ZebraAdapter.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("com.motorolasolutions.emdk.datawedge.data_string")); + } + + @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); + } + } +}