Chainway C72集成RFID SDK:BroadcastReceiver功能配置咨询
Chainway C72 RFID SDK 集成:用 BroadcastReceiver 替代 onKeyDown() 的配置方法
不需要修改 RFIDWithUHFUART 类,按以下步骤配置就能用广播接收器获取RFID数据:
1. 先搞定设备端的 Keyboardemulator 配置
打开设备上的「Keyboardemulator v11.3.9.M」,找到RFID对应的BroadcastReceiver设置:
- 确认
com.rscja.scanner.action.scanner.RFID这个action已经勾选启用 - 检查是否配置了正确的参数(比如标签数据的传递key,常见的是
scannerdata或data,后续代码要对应上)
2. 在你的应用里注册广播接收器
有两种注册方式,选一种就行:
静态注册(写在AndroidManifest.xml里)
<receiver android:name=".你的包名.RFIDBroadcastReceiver"> <intent-filter> <action android:name="com.rscja.scanner.action.scanner.RFID" /> </intent-filter> </receiver>
然后创建对应的Receiver类:
public class RFIDBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if ("com.rscja.scanner.action.scanner.RFID".equals(intent.getAction())) { // 这里获取标签数据,key要和Keyboardemulator里配置的一致 String tagData = intent.getStringExtra("scannerdata"); // 接下来就是你处理数据的逻辑了 } } }
动态注册(在Activity/Fragment里)
private BroadcastReceiver rfidReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if ("com.rscja.scanner.action.scanner.RFID".equals(intent.getAction())) { String tagData = intent.getStringExtra("data"); // 处理标签数据 } } }; // 在页面恢复时注册 @Override protected void onResume() { super.onResume(); IntentFilter filter = new IntentFilter("com.rscja.scanner.action.scanner.RFID"); registerReceiver(rfidReceiver, filter); } // 在页面销毁时注销,避免内存泄漏 @Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(rfidReceiver); }
3. 关闭旧的按键监听逻辑
如果你之前用onKeyDown()监听物理按键来获取RFID数据,现在要把这部分代码注释或者删掉,避免和广播接收器冲突。
4. 测试排查
- 先确保用SDK初始化了RFID模块:
RFIDWithUHFUART.getInstance().open() - 拿RFID标签靠近设备,看广播接收器是否能收到数据
- 如果没收到,用adb命令查日志:
adb logcat | grep "com.rscja.scanner.action.scanner.RFID",看看系统有没有发出这个广播
内容的提问来源于stack exchange,提问作者Cenziii
相关产品推荐
相关产品推荐

