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 태그가 인식되어 브로드캐스팅으로 인텐트를 받았을 대, 실행할 액티비티를 지정하는 역할을 합니다. 세 번째와 네 번째 파라미터는 필터와 사용할 상세 기술의 내용이 들어갑니다.




+ Recent posts