onNewIntent не вызывается для реализации Android NFC без включения луча Android

StackOverflow https://stackoverflow.com//questions/22013058

Вопрос

Я работал над образцами NFC для Peer-To-Peer режим.я реализовал onResume метод двумя разными способами: для режима инициатора и целевого режима, как показано ниже:

Для режима инициатора:

mAdapter.setNdefPushMessage(getTestNdefMessage(), this);

и для целевого режима:

mAdapter.enableForgroundDispatch(this, pendingIntent, null, null);

Я сделал один телефон Android в качестве инициатора, а другой в качестве цели и соединил их друг с другом.Здесь я могу слушать звук обнаружения устройства NFC, но не получаю никаких вызовов. onNewIntent на телефоне Android установлен целевой режим.

Может ли кто-нибудь помочь мне, где я ошибаюсь, в концепции ИЛИ в реализации.Если я включу Android NFC Beam от settings чем я получаю уведомление Initiator устройство для Touch to Beam.В этом случае мне позвонят onNewIntent.

Любое направление будет полезным.

Это было полезно?

Решение

Android-луч является Единственная функция одноранговой связи Android.Поэтому, когда вы отключите Android Beam, ваше устройство не сможет отправлять или получать сообщения в одноранговом режиме.Следовательно, onNewIntent (и др.) не сработает при соединении двух телефонов, если Beam отключен.

Android Beam реализован поверх стандартного стека протоколов однорангового режима NFC Forum:

+--------------------------------------------+
| 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, и два устройства NFC (в некоторой степени автоматически) договариваются о том, кто берет на себя роль инициатора, а кто — целевую роль.)

Таким образом, вы обычно реализуете все уровни вплоть до SNEP, чтобы взаимодействовать с устройством Android с Beam.Windows Phone 8 и Blackberry уже реализуют SNEP для однорангового обмена данными NDEF.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top