2016-12-30 14 views
1

NFC 판독기 ACS ACR122U가 있으며 Android 휴대 전화로 데이터를 보내려고합니다.Android에서 SNEP GET 요청을 보내는 방법

내 두 장치를 P2P 모드로 연결하는 방법과 내 전화기에서 ACR122U로 데이터를 보내는 방법에 대한 예제가 많이 있지만 데스크톱 서버 (ACR122U)는 항상 SNEP PUT 요청을 수신합니다. GET 요청을 보내 겠지만 PUT 또는 GET 요청을 지정하지 않으면 NDEF 시스템에 내장 된 Android 만 사용하는 예제 만 찾을 수 있습니다.

Android 기기에서 SNEP GET 요청을 패키지화하여 ACR122U로 보낼 수있는 방법은 무엇입니까?

답변

2

짧은 대답 : 할 수 없습니다.

Android API를 사용하면 맞춤 LLCP 서비스를 구현할 수 없습니다. Android 기기에 구현 된 유일한 LLCP 서비스는 NFC 포럼 기본 SNEP 서버 (서비스 이름 urn:nfc:sn:snep, 서비스 액세스 지점 주소 4)와 기존 이유로 인해 Android NDEF 푸시 프로토콜 (SNEP와 유사하지만 SNEP 사양 이전의 날짜로 거슬러 올라갑니다. 출판 되었음).

SNEP 프로토콜 사양은 다른 장치에서 NDEF 메시지를 가져 오는 GET 요청을 정의하지만 NFC 포럼 기본 SNEP 서버는 PUT 요청 만 허용하도록 정의됩니다. GET 요청 이 해당 SNEP 서버에 의해 거부되어야합니다.

기본 SNEP 서버가 논리적받은 편지함을 제공하십시오 NFC 포럼 단순 NDEF 교환 프로토콜 기술 사양 (버전 1.0)에서

. 기본 서버에 연결된 클라이언트는 Put 요청 메시지를 사용하여 NDEF 메시지를받은 편지함에 저장할 수 있습니다. [...]

기본 서버는 Get 요청을 허용하지 않습니다. Get 요청 메시지에 대한 적절한 응답이 구현되지 않았습니다.

따라서 NDEF 메시지는 NFC 포럼 기본 SNEP 서버로만 전송할 수 있으며 다른 방법은 사용할 수 없습니다.

따라서, 당신이 피어 - 투 - 피어 모드를 통해에에게 안드로이드 장치를 NDEF 메시지 를 보내려면, 당신은 SNEP 클라이언트 ACR122U 측를 구현해야합니다. 그런 다음 해당 클라이언트가 Android 디바이스의 SNEP 서버 (서비스 이름 urn:nfc:sn:snep)에 연결하도록하고 PUT 요청을 사용하여 NDEF 메시지를 해당 디바이스로 푸시 할 수 있습니다. 당신이 피어 - 투 - 피어 모드를 통해에서 안드로이드 장치를 NDEF 메시지 받으려면

, 당신은 ACR122U 측에 SNEP 서버를 구현해야합니다. 그런 다음 Android SNEP 클라이언트가 SNEP 서버에 연결하여 대기중인 NDEF 메시지 (예 : NfcAdapter.setNdefPushMessage()을 통해 등록됨)를 다시 PUT 요청을 사용하여 푸시합니다.

+0

좋습니다.하지만 ACR122U쪽에 SNEP Server를 구현하면 어떻게됩니까? – firegloves

+0

두 안드로이드 장치 사이의 안드로이드 빔 통신에서 그 중 하나는 서버 역할을하고 다른 하나는 클라이언트 역할을해야한다고 생각합니까? 따라서 안드로이드 장치가 SNEP 클라이언트로 작동 할 수 있다면 왜 내 유스 케이스에서는 서버로 ACR122U를, 클라이언트로 안드로이드 전화를 사용할 수 없습니까?그렇지 않으면 Android에서 내 SNEP 서버를 구현하는 방법에 대한 예를 알고 있습니까? – firegloves

+0

@firegloves LLCP를 기반으로 둘 다 동일한 링크에서 서버와 클라이언트로 작동 할 수 있습니다. 실제로 Android는 SNEP에 대해 클라이언트와 서버를 모두 공격합니다. 위의 글에서 ACF122U의 NDEF 메시지를 Android로 전송하려면 ACR122U 측에서 SNEP 클라이언트를 구현해야합니다.이 측량기는 Android 디바이스에 이미있는 SNEP 서버에 연결하여 PUT합니다. –