HarmonyOS鸿蒙Next中应用切到后台以后NFC连接断开的问题

HarmonyOS鸿蒙Next中应用切到后台以后NFC连接断开的问题 我根据Demo:NFCTag-master,做了一个使用手机NFC对卡片电子钱包进行圈存的功能,但在使用微信支付时,发现微信支付会拉起微信,导致应用切到后台后,NFC连接被断开,我想请教一下,如何才能在后台保持NFC连接。

EntryAbility.ets中的

onBackground(): void {
  // Ability has back to background
  hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground');

  if (foregroundRegister) {
    if (canIUse('SystemCapability.Communication.NFC.Tag')) {
      foregroundRegister = false;
      try {
        tag.off('readerMode', nfcTagElementName, readerModeCb);
        hilog.error(0x0000, 'NfcUtils', 'tag.off');
      } catch (error) {
        hilog.error(0x0000, 'testTag', 'off readerMode error = %{public}s', JSON.stringify(error));
      }
    }
  }
}

且到后台以后,会触发onBackground 中的 tag.off(‘readerMode’, nfcTagElementName, readerModeCb); 导致NFC连接断开,但是我屏蔽了此处所有代码,也没有效果。

望大神解惑!!!


更多关于HarmonyOS鸿蒙Next中应用切到后台以后NFC连接断开的问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

用户您好,请问您使用NFC常驻具体场景是什么还请您做一个详细描述,NFC读取后是有固定数据的

更多关于HarmonyOS鸿蒙Next中应用切到后台以后NFC连接断开的问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


我有一个 NfcChargePage.ets 页面,输入充值金额以后,发起对卡片的圈存初始化交易,并且不断开卡片连接,然后拉起支付方式,比如说微信或支付宝(支付宝支付过程中,不会把app切换到后台,没这个问题),微信支付时,会切换到后台,导致NfcChargePage中的nfc.tag中的连接断开了,无法对卡片发送圈存交易。

好的,我学习一下,

好的,我学习一下,

在HarmonyOS鸿蒙Next中,应用切换到后台时NFC连接断开是系统为了优化资源管理和提升设备性能而采取的策略。可以通过以下方式解决:

  1. 后台持续运行权限:在应用的config.json文件中申请ohos.permission.KEEP_BACKGROUND_RUNNING权限,确保应用在后台时仍能保持NFC连接。

  2. 前台服务:使用ServiceAbility创建前台服务,确保应用在后台时仍能保持活跃状态,维持NFC连接。

  3. NFC API优化:在应用代码中优化NFC API的使用,确保在应用切换到后台时能够正确处理NFC连接状态。

通过这些方法,可以有效解决应用切换到后台时NFC连接断开的问题。

回到顶部