2015-01-14 10 views
0

저는 현재 NFC를 사용하는 ISO/IEC 14443-4 스마트 카드와 통신 할 수있는 Android 지불 애플리케이션을 사용하고 있습니다.EnableReaderMode의 다른 방법 - 19보다 작은 Android API (ICS 및 Jelly Bean)로 작업하려면 ...?

내 활동의 목적으로

나는 보내고 APDU 안드로이드 응용 프로그램과 ISO/IEC 14443-4 스마트 카드 사이에 명령을받을

mNfcAdapter.enableReaderMode(this, this, NfcAdapter.FLAG_READER_NFC_B | NfcAdapter.FLAG_READER_SKIP_NDEF_CHECK, null);

를 사용하여 리더 모드를 활성화 ReaderCallbackonTagDiscovered() 방법을 overidded 한 .

ReaderCallback 및 override onTagDiscovered()은 API 레벨 19 (KitKat)에서 사용할 수 있으므로 KitKat에서 실행되는 Android 기기와 잘 작동합니다.

Android ICS 및 Jelly Bean에서도 응용 프로그램을 만들고 싶습니다. ICD와 JellyBean을위한 APDU 통신을하기 위해 Reader Mode를 가능하게하는 다른 방법이나 해결 방법이 있습니까?

답변

2

아니요, Android 4.4 이전에는 enableReaderMode (사용하는 방식대로)와 직접적으로 동일하지 않습니다. 그러나 포 그라운드 디스패치 시스템 (포 그라운드 디스패치 사용 방법은 this answer 참조)을 사용하여 유사한 기능을 얻을 수 있습니다.

그럼에도 불구하고, enableReaderMode(... FLAG_READER_NFC_B ... FLAG_READER_SKIP_NDEF_CHECK ...)를 사용 enableForegroundDispatch(...)를 사용하는 사이에 약간의 차이가 있습니다 :

  • 앱에 카드를 전달하기 전에 NDEF 검사를 수행합니다 전경 파견.
  • 전경 파견은 적절한 기술 필터 만 사용하여 특정 기술 만 처리하도록 선택한 경우에도 모든 기술을 폴링합니다.
  • 실제 통신을 방해 할 수있는 Broadcom NFC 칩셋 기반 Android 장치의 태그 정밀 검사 메커니즘에 알려진 버그가 있습니다. 이는 리더 모드 API를 사용하여 신뢰할 수있게 처리 할 수 ​​있습니다.
  • 리더 모드 API를 사용하여 태그 스캐닝 플랫폼 사운드 만 비활성화 할 수 있습니다.
+0

감사합니다. 전경 파견을 시도했습니다. 하지만 카드에서 6A82를 던지고 있습니다. 여기에 모든 세부 사항을 명확하게 추가 할 수는 없습니다. 여기에서 확인할 수 있습니까? 카드 정보도 제공했습니다. http://stackoverflow.com/questions/27900477/6a82-apdu-communication-issue-between-nfc-enabled-android-phone-and-iso-iec-1444. – jAnA