NFC Peer 2 Режим одноранговой сети - это не то же самое, что и в режиме чтения карт NFC.
Если вы хотите отправить данные между двумя Android-приложениями, вам необходим Android Beam для работы в режиме Peer 2 Peer.
Начните отсюда, чтобы прочитать около LLCP
and SNEP
protocols.
В основном вам нужно отправить NDEFMessage
с одного устройства на другое с помощью методов обратного вызова Android.
Чтобы отправить NDEFMessage
с Android Beam вам нужно реализовать эти два интерфейса:
CreateNdefMessageCallback
OnNdefPushCompleteCallback
В createNdefMessage()
метод вы должны создавать и возвращать NDEFMessage
для отправки (here вы можете найти описание).
В комплект onNdefPushComplete()
метод вы можете сделать что-то на NDEFMessage
отправка полностью.
Что вам нужно, чтобы определить, какое устройство будет действовать как инициатор, а затем в createNdefMessage()
вы должны вернуть NDEFMessage для отправки на другое устройство.
На принимающем устройстве (в устройстве NFC Target) вы должны получить NDEFMessage
в Activity.onNewIntent(Intent intent)
и управлять этим.
После этого вы можете сделать то же самое с другой стороны.
Теоретически с использованием протокола SNEP вы можете отправлять запросы SNEP GET, но на Android эта функция отключена. Здесь вы можете прочитать дискуссию Android SNEP implementation
Имейте в виду, что для получения NDEFMessage вы должны определить IntentFilter в файле yout manifest.xml, указав, какой из NDEFMessage ваша деятельность должна «перехватывать».Это пример, чтобы поймать AndroidApplicationRecord NDEFMessage:
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/com.example.android.beam" />
</intent-filter>
Проверить это Android Beam Example
Надежда, что помогает
ты решил таким же образом? – firegloves
Что вы имеете в виду? Я этого не решил. Теперь я могу отправить только в одном направлении (читая эмулированную карту). – Han
Я бы знал, что вы пробовали и нашли решение с командами apdu, если да, дайте мне знать, пожалуйста – firegloves