Phonegap NFC 在两个设备之间发送和读取数据

Phonegap NFC Send and Read Data Between Two Devices

我正在尝试在离子 angular 应用程序中使用 phonegap-nfc 在两个支持 NFC 的设备之间发送信息(只是文本)。

到目前为止我能够连接设备并且 Ndef 事件监听器捕获标签,但是标签中的信息总是相同的,它没有给我发送的消息。

我的函数在识别到 NFC 连接时发送标签:

 async connectPeerToPeer() {
    var listener = NFC.addNdefListener(onSucess => {
      console.log('Listening: ', onSucess);
    }, onFail => {
      console.log('Failure: ', onFail);
    }).subscribe(event => {
  
      NFC.share([Ndef.textRecord("hello world!")]).then(res => {
        this.service.Popup("The write message was sent!", ["OK"]);
      }).catch(err => {
        this.service.Popup("Error: "+ err, ["OK"]);
      });

    });
  }

我接收标签的事件:

   NFC.addNdefListener((listening) => {
      console.log("Listening");
    }, (fail) => {
      this.service.Popup(fail, ['OK']);
    }).subscribe(ev => {
      this.onNfc(ev);
    });

  onNfc(nfcEvent) {
    console.log(nfcEvent);
  }

有了这个,标签被传输到接收设备,但信息不是我发送的消息。

这是我在检查器上设置断点时得到的结果:

{"id":[0],"techTypes":["android.nfc.tech.Ndef"],"type":"android.ndef.unknown","maxSize":0,"isWritable":false,"ndefMessage":[{"tnf":1,"type":[85],"id":[],"payload":[3,112,108,97,121,46,103,111,111,103,108,101,46,99,111,109,47,115,116,111,114,101,47,97,112,112,115,47,100,101,116,97,105,108,115,63,105,100,61,105,111,46,105,111,110,105,99,46,115,116,97,114,116,101,114,38,102,101,97,116,117,114,101,61,98,101,97,109]},{"tnf":4,"type":[97,110,100,114,111,105,100,46,99,111,109,58,112,107,103],"id":[],"payload":[105,111,46,105,111,110,105,99,46,115,116,97,114,116,101,114]}],"canMakeReadOnly":false}

我假设我的消息可能在里面 ndefMessage:

但是当我 NFC.bytesToString(nfcEvent.tag.ndefMessage[0].payload) 我得到以下字符串 "play.google.com/store/apps/details?id=io.ionic.starter&feature=beam"

我是不是漏掉了什么?

提前致谢!

这可能是因为 Android Beam(点对点 NFC 共享中使用的功能)在 Android 10 中被弃用。(OS 正在寻找一个应用程序来替换这个缺失的功能)。

https://source.android.com/setup/start/android-10-release#nfc

今后最好使用 Wifi Direct 或蓝牙,以便在设备之间发送数据,Google 正在推动他们的“附近”API https://developers.google.com/nearby/ 作为替代。