Androidビームを有効にせずに、OnneweintentはAndroid NFC実装のために呼び出されていません
-
21-12-2019 - |
質問
Peer-To-Peer
モードのNFCサンプルに取り組んでいます。次のようにイニシエータモードとターゲットモードのために、onResume
メソッドを2つの異なる方法で実装しました。
イニシエータモードの場合:
mAdapter.setNdefPushMessage(getTestNdefMessage(), this);
.
およびターゲットモードの場合:
mAdapter.enableForgroundDispatch(this, pendingIntent, null, null);
.
私は1つのAndroid携帯電話をイニシエータとして、その他ターゲットとしてターゲットとし、背中合わせにしました。ここでは、NFC機器検出音を聞くことができますが、ターゲットモードとして設定されているAndroid携帯電話のonNewIntent
への呼び出しはありません。
誰かが私が間違っているところ、概念や実装で私を助けます。Android NFC Beam
のsettings
デバイスで通知を受け取るよりもInitiator
を有効にすると、Touch to Beam
が発生します。この場合、onNewIntent
への呼び出しが発生します。
どんな方向にも役立ちます。
解決
Android Beam は、Androidの唯一のピアツーピア通信機能です。そのため、Androidビームを無効にすると、ピアツーピアモードでメッセージを送受信できません。その結果、ビームが無効になっている場合、onNewIntent
(et al)は2つの電話をまとめると発火しません。
Androidビームは、NFCフォーラムの標準ピアツーピアモードプロトコルスタックの上に実装されています。
+--------------------------------------------+
| Android Beam |
+--------------------------------------------+
| NDEF (NFC Data Exchange Format) |
+--------------------------------------------+
| SNEP (Simple NDEF Exchange Protocol) |
| (or NDEF Push Protocol (NPP) for backwards |
| compatibility to pre-SNEP Android devices) |
+--------------------------------------------+
| LLCP (Logical Link Control Protocol) |
+--------------------------------------------+
| NFCIP-1 (ISO/IEC 18092) |
+--------------------------------------------+
.
(用語「イニシエータ」と「ターゲット」は、NFCIP-1レイヤーにのみ関連しています。通常、両方の部分はNFCデバイスで実装され、2つのNFCデバイスは(自動的に)を取る人に同意するでしょう(自動的に)。イニシエータの役割とターゲットの役割を担う誰が。)
だから、梁を持つAndroidデバイスと通信するために、通常SNEPまでのすべてのレイヤーを実装します。Windows Phone 8とBlackBerryはすでにピアツーピアNDEFデータ交換用にSNEPを実装しています。