이번 포스트에서는 NFC
기능을 활용하여 카드 한장을 여러장처럼 사용하는 방법에 대해서 알아볼 것이다.
이직을 하고 본가로 올라오게 되면서 지하철을 타고 출퇴근을 하게 되었다. 회사 입구에서 출입 카드를 찍으며 출퇴근을 하던 도중에 문득 다음과 같은 생각이 들었다.
"회사 출입카드 한 장, 아파트 현관 출입카드 한 장, 두 장 다 들고 다니지 말고, 한 장만 들고 다닐 수는 없을까?" 👀
위의 생각을 시작으로, 출근길 주머니를 가볍게 하기위한 프로젝트를 시작했다.
일단, nfc 제품 중 uid 변경이 가능한 제품이 필요하다.
- 알리에서 구매 함..
MIFARE Classic Tool
라는 앱을 사용해서 앱의 uid를 변경을 할 수 있다.
하지만 앱의 특성상 여러 기능이 있고, 여기서 내가 원하는 기능인 uid 변경 기능을 가진 앱을 만들 것이다.
mifare_nfc_classic: ^0.2.2
위의 패키지에서 uid를 덮어쓰는 기능을 제공한다
🚫 uid를 형식에 맞지 않게 변경하면, nfc 제품이 다시는 인식되지 않으므로 주의가 필요
아파트 현관 uid---(A)
, 회사 출입 uid---(B)
두 가지 스위치 기능을 할 수 있는 앱을 개발한다.
/// 카드 UID 읽기
String _block = await MifareNfcClassic.readBlock(
blockIndex: 0, password: PASSWORD);
위의 함수로 먼저 필요한 A
와 B
의 uid를 저장한다.
await MifareNfcClassic.writeRawHexToBlock(
blockIndex: 0,
message: WORK,
password: PASSWORD);
B
로 덮어쓰는 방법은 다음과 같다.