NFC 태그를 단말에서 인식하게 되면 그 정보는 인텐트의 부가 데이터로 넣어져 브로드캐스팅 됩니다. 이때, 인텐트에 들어있는 NFC 태그의 값을 확인하려면 'EXTRA_TAG'를 키값으로 하여 Parcelable 객체를 참조하면 됩니다. 브로그캐스팅 되는 인텐트를 받기 위한 대상 액티비를 결정하는 과정 중에 가장 먼저 확인하는 것이 되려면.. 다음과 같은 enableForegroundDispatch() 메소드를 호출하면 됩니다.
[Reference]
public void enableForegroundDispatch (Activity activity, PendingIntent intent, InterFilter[] filters, String[][] techLists)
public void disableForegroundDispatch (Activity activity)
이 메소드들은 NfcAdapter 객체에 정의되어 있습니다. 다음과 같이 NfdAdapter 객체를 참조한 후 액티비티의 onResume() 메소드 안에서는 enableForegroundDispatch()를, 그리고 onPause() 메소드 안에서는 disableForegroundDispatch()를 실행합니다.
[Reference]
public static NfcAdapter getDefaultAdapter (Context context)
만약 이렇게 참조한 NfcAdapter 객체가 활성화되어 있지 않다면 NFC를 사용할 수 없는 상태가 되므로 널값인지 여부와 함께 isEnabled()메소드를 이용해 활성화 여부를 확인할 수 있습니다.
enableForegroundDispatch() 메소드의 파라미터로 전달되는 PendingIntent 객체는 NFC 태그가 인식되어 브로드캐스팅으로 인텐트를 받았을 대, 실행할 액티비티를 지정하는 역할을 합니다. 세 번째와 네 번째 파라미터는 필터와 사용할 상세 기술의 내용이 들어갑니다.
'Works > Programming' 카테고리의 다른 글
C++) ifstream 읽기 성능 비교 (0) | 2018.08.07 |
---|---|
JAVA) I/O 퍼포먼스 개선 (0) | 2018.08.03 |
C# 컴파일러 오류 CS1612 (0) | 2018.07.19 |
티스토리 홈 화면을 원하는 페이지(포스팅)으로 바꾸기 (0) | 2018.07.11 |
Infix를 Postfix로 바꾸기. (스택 푸시팝 연습) (0) | 2018.07.11 |