diff --git a/app/build.gradle b/app/build.gradle index 0a2766c..f22c268 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,7 +11,7 @@ android { minSdk 28 targetSdk 28 versionCode 1 - versionName "2.2" + versionName "2.3" // 1.0 IDATA广播模式处理 // 1.1 霍尼韦尔的监听修改(扫描网站二维码跳出程序,监听失效,调整)、斑马PDA广播模式设置 @@ -35,6 +35,7 @@ android { // 1.19 index页面接入初始化数据 // 2.1 注册PDA的信息存储到文件内部,采取mac+固定加密串的MD5加密校验 // 2.2 安卓14以上,无法获取mac地址,修改成获取唯一id作为mac地址 + // 2.3 适配IOT_Device:sc55g PDA 广播模式 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" ndk { abiFilters 'armeabi-v7a' diff --git a/app/src/main/java/chaoran/business/BrandEnum.java b/app/src/main/java/chaoran/business/BrandEnum.java index d83019f..55ed872 100644 --- a/app/src/main/java/chaoran/business/BrandEnum.java +++ b/app/src/main/java/chaoran/business/BrandEnum.java @@ -10,6 +10,7 @@ package chaoran.business; public enum BrandEnum { //枚举名即为valueOf() + IOT_DEVICE("新大陆", "iot_device"), NEW_LAND("新大陆", "newland"), HISENSE("海信", "hisense"), UROVO("DT50 Lite", "urovo"), @@ -44,7 +45,7 @@ public enum BrandEnum { code = new String(); } for (BrandEnum brandEnum : values()) { - if (brandEnum.code.equals(code.toLowerCase())) { + if (brandEnum.code.equalsIgnoreCase(code)) { return brandEnum; } } diff --git a/app/src/main/java/chaoran/business/activity/MainActivity.java b/app/src/main/java/chaoran/business/activity/MainActivity.java index 2d3350f..8c4502b 100644 --- a/app/src/main/java/chaoran/business/activity/MainActivity.java +++ b/app/src/main/java/chaoran/business/activity/MainActivity.java @@ -164,6 +164,9 @@ public class MainActivity extends AppCompatActivity implements ResultListener{ case NEW_LAND: adapter = new NewlandAdapter(this, this); break; + case IOT_DEVICE: + adapter = new IOT_DeviceAdapter(this, this); + break; } if (null != adapter) { adapter.start(); diff --git a/app/src/main/java/chaoran/business/adapter/IOT_DeviceAdapter.java b/app/src/main/java/chaoran/business/adapter/IOT_DeviceAdapter.java new file mode 100644 index 0000000..a0527bb --- /dev/null +++ b/app/src/main/java/chaoran/business/adapter/IOT_DeviceAdapter.java @@ -0,0 +1,56 @@ +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; + +/** + * 适配 sc55g + */ +public class IOT_DeviceAdapter implements Adapter { + private Context context; + private ResultListener resultListener; + private Strategy strategy; + + + public IOT_DeviceAdapter(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("message")); + } + + @Override + public void executeStrategy(ResultListener resultListener) { + IntentFilter filter = new IntentFilter(); + filter.addAction("com.speedata.showdecodedata"); + filter.setPriority(2); + context.registerReceiver(this, filter); + } + + @Override + public void exclusiveStrategy() { + context.unregisterReceiver(this); + } + } +}