Files
zgty-mas-m/uni_modules/zzjc-chainway-p100/utssdk/app-android/scan/ScanBroadcastReceiver.uts
houjunxiang 386f1e7466 1
2025-10-09 18:19:55 +08:00

83 lines
2.4 KiB
Plaintext

import Activity from 'android.app.Activity';
import IntentFilter from 'android.content.IntentFilter';
import BroadcastReceiver from 'android.content.BroadcastReceiver';
import Context from 'android.content.Context';
import Intent from 'android.content.Intent';
import { OnScanReceiverCallback } from '../../interface.uts';
export default class ScanBroadcastReceiver {
private static instance : ScanBroadcastReceiver = new ScanBroadcastReceiver();
private context : Context | null = null;
private scanBroadcastReceiver: ChainwayScanBroadcastReceiver | null = null;
private intentFilter: IntentFilter | null = null;
private isOpenScan: boolean = false;
private constructor() {
}
static getInstance(context : Context | null) : ScanBroadcastReceiver {
ScanBroadcastReceiver.instance.context = context;
return ScanBroadcastReceiver.instance;
}
registerReceiver(callback: OnScanReceiverCallback) {
this.scanBroadcastReceiver = new ChainwayScanBroadcastReceiver(callback);
if(this.isOpenScan == false) {
this.isOpenScan = true;
}
this.intentFilter = new IntentFilter();
this.intentFilter!.addCategory(Intent.CATEGORY_DEFAULT);
this.intentFilter!.addAction("com.infowedge.data");
UTSAndroid.getUniActivity()!.registerReceiver(this.scanBroadcastReceiver, this.intentFilter);
}
unregisterReceiver () {
let uniActivity: Activity | null = UTSAndroid.getUniActivity();
if(this.scanBroadcastReceiver != null) {
uniActivity!.unregisterReceiver(this.scanBroadcastReceiver);
}
//停止扫描
if (this.isOpenScan){
this.isOpenScan = false;
}
this.scanBroadcastReceiver = null;
}
}
class ChainwayScanBroadcastReceiver extends BroadcastReceiver {
private callback: OnScanReceiverCallback;
constructor(callback: OnScanReceiverCallback) {
super();
this.callback = callback;
}
override onReceive(context : Context, intent : Intent) {
let action = intent.getAction();
if(action == "com.infowedge.data") {
//let result = intent.getIntExtra("result", -1);
//console.log("result: " + result);
let data = intent.getStringExtra("data_string");
//let decode_data = intent.getByteArrayExtra("decode_data");
//console.log("decode_data: " + decode_data.toString());
//let symbol = intent.getIntExtra("symbology", -1);
//console.log("symbol: " + symbol)
//let time = intent.getIntExtra("decode_time", -1)
//console.log("time: " + time + "ms");
if(data != null) {
this.callback(data);
}
}
}
}