2.8 编写一个通用的广播模式,action:chaoran.crtech.cn.pda.scan key:barcode;并且写了一个固定的注册码,但是这个注册码只能注册一个小时

This commit is contained in:
2025-06-25 11:04:14 +08:00
parent d949619023
commit 46b6b43a0f
4 changed files with 57 additions and 6 deletions

View File

@ -11,7 +11,7 @@ android {
minSdk 28 minSdk 28
targetSdk 28 targetSdk 28
versionCode 1 versionCode 1
versionName "2.7" versionName "2.8"
// 1.0 IDATA广播模式处理 // 1.0 IDATA广播模式处理
// 1.1 霍尼韦尔的监听修改扫描网站二维码跳出程序监听失效调整、斑马PDA广播模式设置 // 1.1 霍尼韦尔的监听修改扫描网站二维码跳出程序监听失效调整、斑马PDA广播模式设置
@ -42,6 +42,7 @@ android {
// 2、判断是否初始化成功(webview成功)如果已经加载完毕那么apk不在拦截调用js的方法让BS进行处理提示 // 2、判断是否初始化成功(webview成功)如果已经加载完毕那么apk不在拦截调用js的方法让BS进行处理提示
// 3、根据官方文档将code的判断进行修改添加了一个网络错误的页面进行提示(并且添加了一个重新加载的按钮执行webview重新加载) // 3、根据官方文档将code的判断进行修改添加了一个网络错误的页面进行提示(并且添加了一个重新加载的按钮执行webview重新加载)
// 2.7 海康威视 mv-idp5204 适配广播模式和之前的idp5102厂家code不一样 宿州市立医院-李德 // 2.7 海康威视 mv-idp5204 适配广播模式和之前的idp5102厂家code不一样 宿州市立医院-李德
// 2.8 编写一个通用的广播模式actionchaoran.crtech.cn.pda.scan keybarcode
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
ndk { ndk {
abiFilters 'armeabi-v7a' abiFilters 'armeabi-v7a'

View File

@ -181,6 +181,8 @@ public class MainActivity extends AppCompatActivity implements ResultListener{
case QUALCOMM: case QUALCOMM:
adapter = new QualcommAdapter(this, this); adapter = new QualcommAdapter(this, this);
break; break;
default:
adapter = new DefaultAdapter(this, this);
} }
if (null != adapter) { if (null != adapter) {
adapter.start(); adapter.start();

View File

@ -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);
}
}
}

View File

@ -69,9 +69,6 @@ public class LocalAddressUtil {
@JavascriptInterface @JavascriptInterface
public String getMacAddress(){//可以兼容安卓7以下 public String getMacAddress(){//可以兼容安卓7以下
SharedPreferences spf = context.getSharedPreferences("chaoran_mac", Context.MODE_PRIVATE); 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", ""); String saveMac = spf.getString("chaoran_mac", "");
if (!"".equalsIgnoreCase(saveMac)) { if (!"".equalsIgnoreCase(saveMac)) {
return saveMac; return saveMac;
@ -243,9 +240,9 @@ public class LocalAddressUtil {
return "error"; return "error";
} }
if ("1".equals(sharedPreferences.getString("checkMacType", "0"))) { if ("1".equals(sharedPreferences.getString("checkMacType", "0"))) {
// 判断是否是强行注册的,强行注册的只允许使用一;一但判断到,就取消注册 // 判断是否是强行注册的,强行注册的只允许使用一个小时;一但判断到,就取消注册
Long aLong = Long.valueOf(sharedPreferences.getString("checkMacTime", String.valueOf(System.currentTimeMillis()))); 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(); SharedPreferences.Editor edit = sharedPreferences.edit();
edit.putString("checkMac", "error"); edit.putString("checkMac", "error");
edit.commit(); edit.commit();