투케이2K

37. (AndroidStudio/android/java) NfcAdapter 객체를 사용해 NFC 지원 여부 및 활성, 비활성 확인 실시 본문

Android

37. (AndroidStudio/android/java) NfcAdapter 객체를 사용해 NFC 지원 여부 및 활성, 비활성 확인 실시

투케이2K 2021. 1. 28. 12:52

/* =========================== */

[ 개발 환경 설정 ]

개발 툴 : AndroidStudio

개발 언어 : java

/* =========================== */

/* =========================== */

[소스 코드]

 

//================== [AndroidManifest.xml 네트워크 연결 상태 확인 퍼미션] ==================
<uses-permission android:name="android.permission.NFC"/>



//================== [NFC 상태 확인 위한 전역 변수 선언 실시] ==================
public static final String NFC_DISABLE = "DISABLE";
public static final String NFC_ACTIVE = "ACTIVE";
public static final String NFC_INACTIVE = "INACTIVE";



//================== [NFC 상태 확인 메소드 호출] ==================
String nfcState = getNfcState(); //TODO NFC 상태 확인 메소드 호출

if(nfcState.equals(NFC_DISABLE)){ //TODO NFC 지원하지 않는 기기인 경우
	Toast.makeText(getApplication(),"NFC 지원하지 않는 기기입니다",Toast.LENGTH_SHORT).show();
}
else if(nfcState.equals(NFC_INACTIVE)){ //TODO NFC 비활성 상태인 경우
	Toast.makeText(getApplication(),"NFC 기능이 비활성 상태입니다",Toast.LENGTH_SHORT).show();
}
else if(nfcState.equals(NFC_ACTIVE)){ //TODO NFC 활성 상태인 경우
	Toast.makeText(getApplication(),"NFC 기능이 활성 상태입니다",Toast.LENGTH_SHORT).show();
}



//================== [NFC 상태 확인 메소드] ==================
public String getNfcState(){
	try {
		Log.d("---","---");
		Log.d("//===========//","================================================");
		Log.d("","\n"+"[A_Nfc > getNfcState() 메소드 : NFC 지원 여부 및 활성, 비활성 확인 실시]");
		Log.d("//===========//","================================================");
		Log.d("---","---");
		/**
		 * [확인 방법]
		 * 1. NFC 상태 권한을 획득 실시 - AndroidManifest.xml : <uses-permission android:name="android.permission.NFC"/>
		 * 2. NfcAdapter 객체를 사용해 NFC 지원 여부 및 활성, 비활성 확인 실시
		 * 3. NFC 지원하지 않는 기기 리턴 값 - DISABLE
		 * 4. NFC 비활성 경우 리턴 값 - INACTIVE
		 * 5. NFC 활성인 경우 리턴 값 - ACTIVE
		 */
		NfcAdapter nfcAdapter = null;
		nfcAdapter = NfcAdapter.getDefaultAdapter(getApplication());
		if(nfcAdapter == null){ //TODO NFC를 지원하지 않는 기기인지 확인
			Log.d("---","---");
			Log.e("//===========//","================================================");
			Log.d("","\n"+"[A_Nfc > 블루투스 지원 기기 확인 : 지원하지 않는 모바일 기기]");
			Log.e("//===========//","================================================");
			Log.d("---","---");
			return NFC_DISABLE;
		}
		else { //TODO NFC가 켜져있는지 확인 [NFC 지원 기기]
			Log.d("---","---");
			Log.w("//===========//","================================================");
			Log.d("","\n"+"[A_Nfc > NFC 지원 기기 확인 : 지원하는 모바일 기기]");
			Log.w("//===========//","================================================");
			Log.d("---","---");
			if(nfcAdapter.isEnabled() == true){
				Log.d("---","---");
				Log.w("//===========//","================================================");
				Log.d("","\n"+"[A_Nfc > NFC 기능 활성 확인 : 활성 상태]");
				Log.w("//===========//","================================================");
				Log.d("---","---");
				return NFC_ACTIVE;
			}
			else {
				Log.d("---","---");
				Log.e("//===========//","================================================");
				Log.d("","\n"+"[A_Nfc > NFC 기능 활성 확인 : 비활성 상태]");
				Log.e("//===========//","================================================");
				Log.d("---","---");
				return NFC_INACTIVE;
			}
		}
	}
	catch (Exception e){
		Log.d("---","---");
		Log.e("//===========//","================================================");
		Log.d("","\n"+"[A_Nfc > NFC 지원 기기 확인 : 지원하지 않는 모바일 기기]");
		Log.d("","\n"+"[Catch 메시지 : "+String.valueOf(e.getMessage())+"]");
		Log.e("//===========//","================================================");
		Log.d("---","---");
		return NFC_DISABLE;
	}
}

/* =========================== */

/* =========================== */

[결과 출력]

/* =========================== */

/* =========================== */

[요약 설명]

* 1. NFC 상태 권한을 획득 실시 - AndroidManifest.xml : <uses-permission android:name="android.permission.NFC"/>

* 2. NfcAdapter 객체를 사용해 NFC 지원 여부 및 활성, 비활성 확인 실시

* 3. NFC 지원하지 않는 기기 리턴 값 - DISABLE

* 4. NFC 비활성 경우 리턴 값 - INACTIVE

* 5. NFC 활성인 경우 리턴 값 - ACTIVE

/* =========================== */

반응형
Comments