背景:
设备是 鸿合 教育平板 (电子班牌), 系统是安卓 11, 厂家给的示例代码如附图
问题:
刷卡时可以听到滴滴的声音, 但获取不到刷卡的内容, 代码如下, 请教一下大家自定义的广播是不是单这样写就可以获取的, 还是说要在底座上进行开发支持或者使用其他第三方的插件:
<template>
<view class="content">
<text class="title">内容: {{cardnumber}}</text>
</view>
</template>
<script>
var main, receiver, filter;
export default {
name: 'GetCardNumber',
data() {
return {
cardnumber: ''
}
},
created: function(option) {
this.init();
setTimeout(() => {
this.start();
}, 2000)
},
onHide: function() {
this.stop();
},
destroyed: function() {
this.stop();
},
methods: {
init() {
let _this = this;
main = plus.android.runtimeMainActivity(); //获取activity
var IntentFilter = plus.android.importClass('android.content.IntentFilter');
filter = new IntentFilter();
filter.addAction("android.intent.action.getcardnumber"); // 换你的广播动作
receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {
onReceive: function(context, intent) {
plus.android.importClass(intent);
let code = intent.getStringExtra("cardnumber"); // 换你的广播标签
console.log('code', code)
_this.cardnumber = code
}
});
},
start() {
main.registerReceiver(receiver, filter);
},
stop() {
main.unregisterReceiver(receiver);
},
}
}
</script>
已尝试排查:
- 权限, 打开了 BROADCAST 及 RECEIVE 相关的权限配置;
- 延迟注册;