Notice
Recent Posts
Recent Comments
Link
투케이2K
939. (Android/Java) [간단 소스] 안드로이드 NFC 카드 읽기 NfcAdapter enableForegroundDispatch IntentFilter 설정 코드 본문
Android
939. (Android/Java) [간단 소스] 안드로이드 NFC 카드 읽기 NfcAdapter enableForegroundDispatch IntentFilter 설정 코드
투케이2K 2025. 1. 16. 20:00[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Java / Kotlin
[소스 코드]
// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------
- 언어 : Java / Kotlin
- 개발 툴 : AndroidStudio
- 기술 구분 : Nfc / Card / Tag / Ndef / Tech
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[사전) 필요 설정]
// --------------------------------------------------------------------------------------
/**
* // -------------------------------------------------------
* 1. 필요 퍼미션 :
*
* <uses-permission android:name="android.permission.NFC"/>
* <uses-feature android:name="android.hardware.nfc" android:required="true" />
* // -------------------------------------------------------
* 2. 참고 사이트 :
*
* UID 및 NDEF 메시지 읽기, 쓰기 : https://blog.naver.com/kkh0977/223128033201?trackingCode=blog_bloghome_searchlist
*
* 마이페어 카드 섹터 블럭 읽기 : https://blog.naver.com/kkh0977/223015747045
*
* 안드로이드 어댑터 클래스 : https://developer.android.com/reference/android/nfc/NfcAdapter
* // -------------------------------------------------------
* */
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[소스 코드]
// --------------------------------------------------------------------------------------
// -------------------------------------------------------
// TODO [NFC 어댑터 초기화 수행]
// -------------------------------------------------------
NfcAdapter nfcAdapter = = NfcAdapter.getDefaultAdapter(mMainCtx);
// -------------------------------------------------------
// TODO [액티비티 라이프 사이클 : onResume >> NFC 읽기 IntentFilter 설정]
// -------------------------------------------------------
// TODO [onNewIntent >> 실시간 NFC 카드 데이터 태깅 값 확인]
// -------------------------------------------------------
// TODO [카드 읽기 타입 지정]
IntentFilter tagDetected = new IntentFilter(NfcAdapter.ACTION_TAG_DISCOVERED); // [TAG]
IntentFilter ndefDetected = new IntentFilter(NfcAdapter.ACTION_NDEF_DISCOVERED); // [NDEF]
IntentFilter techDetected = new IntentFilter(NfcAdapter.ACTION_TECH_DISCOVERED); // [TECH]
IntentFilter[] nfcIntentFilter = new IntentFilter[]{techDetected,tagDetected,ndefDetected}; // [배열에 추가]
// TODO [PendingIntent 선언]
PendingIntent pendingIntent = null;
Intent intent = new Intent(mMainCtx, mMainCtx.getClass());
//intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S){ // TODO [타겟 31 이상]
pendingIntent = PendingIntent.getActivity(mMainCtx, 0, intent, PendingIntent.FLAG_MUTABLE );
}
else { // TODO [타겟 31 미만]
//pendingIntent = PendingIntent.getActivity(mMainCtx, 0, intent, 0);
pendingIntent = PendingIntent.getActivity(mMainCtx, 0, intent, PendingIntent.FLAG_IMMUTABLE);
}
// TODO [포그라운드 태그 활성 대기]
String [][] techListsArray = new String[][]{new String[]{NfcF.class.getName()}};
nfcAdapter.enableForegroundDispatch((Activity) mMainCtx, pendingIntent, nfcIntentFilter, techListsArray);
// -------------------------------------------------------
// TODO [액티비티 라이프 사이클 : onPause >> NFC 읽기 모드 비활성 처리]
// -------------------------------------------------------
nfcAdapter.disableForegroundDispatch((Activity) mMainCtx);
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------
UID 및 NDEF 메시지 읽기, 쓰기 : https://blog.naver.com/kkh0977/223128033201?trackingCode=blog_bloghome_searchlist
마이페어 카드 섹터 블럭 읽기 : https://blog.naver.com/kkh0977/223015747045
안드로이드 어댑터 클래스 : https://developer.android.com/reference/android/nfc/NfcAdapter
NFC 기능 활성 및 카드 Read , Write 관련 모듈 : https://blog.naver.com/kkh0977/223607573751?trackingCode=blog_bloghome_searchlist
// --------------------------------------------------------------------------------------
반응형
'Android' 카테고리의 다른 글
Comments