当前位置: 首页 > news >正文

浙江振升建设有限公司网站泰安中推网络科技有限公司

浙江振升建设有限公司网站,泰安中推网络科技有限公司,广告网站设计公司 作用,网站wap版影响权重么前言 最近搞了个设备#xff0c;需求是读取m1卡#xff0c;厂家给了个安卓原生demo#xff0c;接入arr插件如下#xff0c;接入后发现还是少了一部分代码#xff0c;设备服务调起后触发刷卡无法发送到uniapp里。 中间是一些踩坑记录#xff0c;最后面是解决办法#xf…前言 最近搞了个设备需求是读取m1卡厂家给了个安卓原生demo接入arr插件如下接入后发现还是少了一部分代码设备服务调起后触发刷卡无法发送到uniapp里。 中间是一些踩坑记录最后面是解决办法赶时间直接拉到最后 安卓原生广播 demo中的NfcService其中有一个onDataReceived方法最终调用了LocalBroadcastManager 发送广播 protected void onDataReceived(final ComBean ComRecData) {Log.d(TAG, 发送消息);LocalBroadcastManager localBroadcastManager LocalBroadcastManager.getInstance(getApplicationContext());Intent intent new Intent(NfcAction.ACTION_NOTIFY_CARD_NUMBER);intent.putExtra(NfcAction.KEY_NOTIFY_DECIMAL_CARD_NUMBER, decimal);intent.putExtra(NfcAction.KEY_NOTIFY_DECIMAL_REVERSE_CARD_NUMBER, decimalReverse);intent.putExtra(NfcAction.KEY_NOTIFY_ORIGINAL_CARD_NUMBER, originHex);intent.putExtra(NfcAction.KEY_NOTIFY_EIGHT_HEX_CARD_NUMBER, eightHex);intent.putExtra(NfcAction.KEY_NOTIFY_EIGHT_HEX_REVERSE_CARD_NUMBER, eightHexReverse);intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);localBroadcastManager.sendBroadcast(intent);Log.d(TAG, 发送消息成功); }在MainActivity的onCreate里有接收广播 val nfcCardReceiver NfcCardReceiver() val intentFilter IntentFilter() intentFilter.addAction(NfcAction.ACTION_NOTIFY_CARD_NUMBER) LocalBroadcastManager.getInstance(this).registerReceiver(nfcCardReceiver, intentFilter)NfcCardReceiver类 package com.rt.nfclibdemoimport android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.util.Log import com.rt.lib_nfc.NfcAction import org.greenrobot.eventbus.EventBusclass NfcCardReceiver: BroadcastReceiver() {override fun onReceive(p0: Context?, p1: Intent?) {if (p1 ! null) {val card p1.getStringExtra(NfcAction.KEY_NOTIFY_ORIGINAL_CARD_NUMBER)val card2 p1.getStringExtra(NfcAction.KEY_NOTIFY_DECIMAL_CARD_NUMBER)val card3 p1.getStringExtra(NfcAction.KEY_NOTIFY_DECIMAL_REVERSE_CARD_NUMBER)val card4 p1.getStringExtra(NfcAction.KEY_NOTIFY_EIGHT_HEX_CARD_NUMBER)val card5 p1.getStringExtra(NfcAction.KEY_NOTIFY_EIGHT_HEX_REVERSE_CARD_NUMBER)//跟ui绑定的东西忽略掉EventBus.getDefault().post(CardBean(card!!, card2!!, card3!!, card4!!, card5!!))Log.e(TAG, onReceive: card --- card2 --- card3 --- card4 --- card5)}} }根据以往的经验写出如下代码结果是失败的 const mainActivity plus.android.runtimeMainActivity(); const NfcAction plus.android.importClass(com.rt.lib_nfc.NfcAction); var nfcCardReceiver plus.android.implements(io.dcloud.android.content.BroadcastReceiver, {onReceive: function(context, intent) { //实现onReceiver回调函数plus.android.importClass(intent);console.log(context, intent -, context, intent);console.log(intent.getAction() -, intent.getAction());} const IntentFilter plus.android.importClass(android.content.IntentFilter); const filter new IntentFilter(); filter.addAction(NfcAction.ACTION_NOTIFY_CARD_NUMBER); //监听 let LocalBroadcastManager plus.android.importClass(androidx.localbroadcastmanager.content.LocalBroadcastManager); let localBroadcastManager LocalBroadcastManager.getInstance(mainActivity); localBroadcastManager.registerReceiver(nfcCardReceiver, filter);最终结果是控制台无输出 adb shell catlog抓到的日志是个null 找了很久很久后找到了个栗子据说绑定不成功的原因是io.dcloud.android.content.BroadcastReceiver这个东西是抽象类无法实现只能用io.dcloud.feature.internal.reflect.BroadcastReceiver然而替换后还是不行就是无法监听LocalBroadcastManager又找了很久资料找了无数篇垃圾文章后找了原生安卓的很多文章后终于找到了个办法不用LocalBroadcastManager使用另一种方法发送接收广播 最终方案 不使用LocalBroadcastManager发生监听广播 使用getApplicationContext().sendBroadcast(intent);发送广播 使用mainActivity.registerReceiver(nfcCardReceiver, filter);监听广播 首先将NfcService-onDataReceived改造在原有基础上增加更改后记得重新打成arr然后重打自定义基座才能生效 protected void onDataReceived(final ComBean ComRecData) {Log.d(TAG, 发送消息);LocalBroadcastManager localBroadcastManager LocalBroadcastManager.getInstance(getApplicationContext());Intent intent new Intent(NfcAction.ACTION_NOTIFY_CARD_NUMBER);intent.putExtra(NfcAction.KEY_NOTIFY_DECIMAL_CARD_NUMBER, decimal);intent.putExtra(NfcAction.KEY_NOTIFY_DECIMAL_REVERSE_CARD_NUMBER, decimalReverse);intent.putExtra(NfcAction.KEY_NOTIFY_ORIGINAL_CARD_NUMBER, originHex);intent.putExtra(NfcAction.KEY_NOTIFY_EIGHT_HEX_CARD_NUMBER, eightHex);intent.putExtra(NfcAction.KEY_NOTIFY_EIGHT_HEX_REVERSE_CARD_NUMBER, eightHexReverse);intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);Log.d(TAG, 发送localBroadcastManager消息);//原来的发送广播语句//localBroadcastManager.sendBroadcast(intent);Log.d(TAG, 发送getApplicationContext消息);//新增的关键语句getApplicationContext().sendBroadcast(intent);Log.d(TAG, 发送消息成功); }uniapp部分 registerReceiver(){const that this;const Log plus.android.importClass(android.util.Log);Log.d(NfcApp, 1);const mainActivity plus.android.runtimeMainActivity();const NfcAction plus.android.importClass(com.rt.lib_nfc.NfcAction);const nfcCardReceiverFunc { onReceive: function(context, intent) { //实现onReceiver回调函数 plus.android.importClass(intent);console.log(context, intent -, context, intent);console.log(intent.getAction() -, intent.getAction());console.log(回调成功);that.cardData {};let card1 intent.getStringExtra(NfcAction.KEY_NOTIFY_ORIGINAL_CARD_NUMBER);let card2 intent.getStringExtra(NfcAction.KEY_NOTIFY_DECIMAL_CARD_NUMBER);let card3 intent.getStringExtra(NfcAction.KEY_NOTIFY_DECIMAL_REVERSE_CARD_NUMBER);let card4 intent.getStringExtra(NfcAction.KEY_NOTIFY_EIGHT_HEX_CARD_NUMBER);let card5 intent.getStringExtra(NfcAction.KEY_NOTIFY_EIGHT_HEX_REVERSE_CARD_NUMBER);console.log(返回数据-,card1, card2, card3, card4, card5);if(card1 AABB0600000001060007){return;}//最终返回的数据that.cardData { card1, card2, card3, card4, card5 };}};const nfcCardReceiver plus.android.implements(io.dcloud.feature.internal.reflect.BroadcastReceiver, nfcCardReceiverFunc);const IntentFilter plus.android.importClass(android.content.IntentFilter);const filter new IntentFilter();Log.d(NfcApp, 2);filter.addAction(NfcAction.ACTION_NOTIFY_CARD_NUMBER); //监听Log.d(NfcApp, 3);let res mainActivity.registerReceiver(nfcCardReceiver, filter);Log.d(NfcApp, 4);Log.d(NfcApp, 绑定成功)//解除绑定暂未实现//unregisterReceiver },重新打包重新运行后即可接到this.cardData返回的值了
http://www.w-s-a.com/news/613806/

相关文章:

  • 电子商务专业网站建设什么软件可以做动画视频网站
  • wordpress 分享主题做网站优化有必要
  • ftp 网站管理电商网站设计图片
  • 惠州免费建站模板营销型旅游网站建设
  • 南宁cms建站wordpress 开启缩略图
  • 网站模板软件网站admin密码
  • 网站信息做参考文献射阳做企业网站多少钱
  • 网站外部优化的4大重点外贸站外推广
  • 宁波网站建设活动德州乐陵德州seo公司
  • 网站网址相对路径如何设置wordpress怎么加快网站打开速度
  • 有没有能帮人快速网站备案的机构网站建设与制作总结
  • 网站不用了怎么办苏州h5模板建站
  • 网站建设制作定制免费网络短剧
  • 建设部建造师强制注销网站h5响应式网站模板下载
  • 蛋糕网站内容规划建设网站需要多少钱济南兴田德润o厉害吗
  • 企业如何建设网站呢做网站的高手
  • 为什么打开网址都是站长工具开发一款网站需要多少钱
  • 做一个网站app需要多少钱分类信息网站建设计划
  • 怎样下载建设部网站建模培训
  • 北流网站建设制作旅游网站开发目的和目标
  • 网站公司怎么做的网站建设论文二稿
  • 网站建设服务商都有哪些html项目答辩
  • 网站上传到万网主机wordpress视频防盗链
  • 西安建设商城类网站广告设计公司文案
  • 如何建设好高校网站麻辣烫配方教授网站怎么做
  • 宁波网站建设计品牌推广策略分析
  • 网站自建设需要买什么时候开始深圳市建筑市场信息公开平台
  • 平台营销型网站建设小城镇建设的网站文献
  • 燕郊个人做网站小企业网站模板
  • 网站ip需要备案新开河街做网站公司