근접 통신(NFC)은 특히 모바일 핸드셋에 적용되었을 때 많은 잠재력을 갖는 매우 짧은 범위의 무선 통신 기술입니다. 휴대 전화를 사용해 포스터, 잡지나 상점의 물건들과 상호작용할 수 있으며 이러한 상호작용을 통해 실시간으로 관련 정보를 검색하거나 요청을 시작할 수 있다고 상상해 보십시오. NFC의 또 다른 용도로는 신용 카드와 마찬가지로 핸드셋을 사용해 지불하는 전자 지갑이 있습니다. NFC를 사용하면 이 모든 것이 가능합니다. 그러나 NFC는 아직 개발 단계의 기술입니다. 이는 NFC 지원 핸드셋의 시장 도입 및 전 세계적 배포 및 추진이 실행 중이라는 의미입니다. 이 기사는 NFC에 대해 설명하고 비접촉식 통신 API를 사용한 자바 애플리케이션에서의 NFC 활용 방법을 살펴봅니다.
목차
- NFC란 무엇입니까?
- NFC 모드
- 비접촉식 통신 API
- 비접촉식 통신 API MIDlet의 분석
- 비접촉식 통신 API 사용
- 비접촉식 통신 및 일반 연결 프레임워크 API
- 보안 고려 사항
- 참고 자료
- 저자 정보
근접 통신(또는 NFC)은 하드웨어, 소프트웨어/애플리케이션, 신용 카드 회사, 은행, 네트워크 제공업체 및 기타 이 유망한 기술의 표준화 및 발전에 관심이 있는 업체들의 국제적 컨소시엄인 NFC 포럼이 정의한 표준입니다.
NFC는 13.56MHz 주파수에서 작동하는 근접 무선 기술로 초당 최대 424킬로비트의 데이터를 전송합니다. NFC 통신은 두 개의 NFC 호환 장치가 약 4cm 정도로 근접할 때 트리거됩니다. 전송 범위가 매우 짧으므로 NFC 기반 트랜잭션은 짧은 거리에서 특히 안전합니다.
NFC와 다른 단거리 통신 기술의 차이점은 무엇입니까? 아래 표에서 간단히 비교해 봅니다.
![]() |
다른 단거리 무선 기술과 비교하면 NFC의 범위는 매우 짧고 사람 중심입니다. 일부 다른 단거리 통신 기술은 RFID처럼 유사한 특성을 갖지만 나머지는 블루투스 및 적외선과 같이 완전히 다르며 NFC를 보완합니다. 이러한 보완의 좋은 예가 NFC와 블루투스의 조합으로 이 조합에서 NFC는 연결(인증)에, 블루투스 세션은 데이터 전송에 사용합니다.
| NFC 표준 NFC는 표준이며 ISO 표준을 기반으로 합니다. ISO 14443 Type A 및 Type B 표준 + FeliCa는 판독기 안테나에 근접하여 13.56MHz에서 작동하는 비접촉식 스마트카드 작동을 위한 4개 부문의 국제 표준입니다. ISO 18092 표준은 NFC 인터페이스 및 프로토콜에 대한 통신 모드를 정의합니다. |
NFC 포럼은 다음에 설명된 세 가지 통신 모드를 정의합니다.
![]() |
설명:
- 피어 투 피어 모드는 장치간의 링크 수준 통신에 대해 정의합니다. 비접촉식 통신 API는 이 모드를 지원하지 않습니다.
- 읽기/쓰기 모드는 애플리케이션이 NFC 포럼에서 정의한 메시지를 전송하도록 합니다. 이 모드는 안전하지 않습니다. 비접촉식 통신 API는 이 모드를 지원합니다.
- NFC 카드 에뮬레이션 모드는 NFC 핸드셋이 표준 스마트카드처럼 작동하도록 합니다. 이 모드는 안전합니다. 비접촉식 통신 API는 이 모드를 지원합니다.
NFC 용어
|
다음으로는 비접촉식 통신 API, NFC 기반 애플리케이션의 분석 및 NFC 통신을 위한 API 사용 방법을 살펴보겠습니다.
노키아가 주도하고 JSR-257 Java Community Process에 따라 정의된 비접촉식 통신 API 자바 사양은 근접 비접촉 기반 통신을 위한 API 집합을 정의합니다. API는 다음과 같이 다섯 가지 자바 패키지로 구성됩니다
|
자바 패키지 |
인터페이스 |
클래스 |
예외 |
|---|---|---|---|
javax.microedition.contactless모든 대상에 공통인 모든 클래스와 대상 발견을 포함하는 필수 패키지 |
TagConnection |
DiscoveryManager |
ContactlessException |
javax.microedition.contactless.ndefNDEF 형식의 데이터 태그와의 통신을 위한 옵션 패키지 |
NDEFRecordListener |
NDEFMessage |
|
javax.microedition.contactless.rfRFID(NDEF 형식의 데이터 제외) 태그와의 통신을 위한 옵션 패키지 |
PlainTagConnection |
|
|
javax.microedition.contactless.sc외부 스마트카드와의 통신을 위한 옵션 패키지 |
ISO14443Connection |
|
|
javax.microedition.contactless.visual비주얼 태그 생성 및 판독을 위한 옵션 패키지 |
ImageProperties |
SymbologyManager |
VisualTagCodingException |
* 필수 패키지는 javax.microedition.contactless뿐입니다.
비접촉식 통신 API를 통해 NDEF 태그, RFID 태그 및 외부 스마트카드와 같은 비접촉식 대상과 데이터를 교환 및 발견할 수 있습니다. API는 또한 비주얼 태그에 대한 지원도 제공합니다. 다음 다이어그램은 서로 다른 API 클래스와 인터페이스 사이의 관계를 설명합니다.
다음으로는 일반적인 비접촉식/NFC 기반 MIDlet의 분석을 다룹니다.
여기에서는 비접촉식 통신 API를 사용하는 일반적인 모바일 자바 애플리케이션(MIDlet) 요소를 다루겠습니다. 다음에 설명되어 있습니다.
![]() |
여기에는 다음과 같은 일반적인 요소가 있습니다.
- JSR-257이 구현된 자바 런타임
- 핸드셋에서 실행되는 MIDlet 애플리케이션
- RFID/NFC 트랜스폰더, 컨트롤러 및 베이스밴드
- SIM 카드와 보안 및 외부 요소
|
외부 판독기 |
보안 요소 |
|---|---|
|
외부 판독기에는 POS(Point of Sale) 스테이션의 비접촉식 지불 판독기, 교통 시스템의 티켓팅 시스템, 스마트카드 또는 NFC, RFID 및 바코드와 같은 외부 무선 비주얼 태그 등이 포함됩니다. |
보안 요소(SE)는 내부 또는 외부 요소가 될 수 있으며 자바 카드 기반 스마트카드가 그 예입니다. MIDlet은 SATSA(Security and Trust Services API) 및/또는 비접촉식 통신 API(JSR 257)를 사용하여 보안 요소를 액세스할 수 있습니다. 외부 판독기는 RFID 회로를 통해 내부 보안 요소에 직접 액세스합니다(카드 에뮬레이션 모드 사용). |
다음으로는 비접촉식 통신 API 사용 방법을 살펴봅니다.
비접촉식 통신 API를 사용하여 지원하는 비접촉식 무선 및 비주얼 대상(태그)을 발견하고 데이터 교환을 할 수 있습니다. 비접촉식 통신 API를 사용하는 애플리케이션은 일반적으로 다음에 설명된 플로우를 따릅니다.
![]() |
설명:
- 애플리케이션의 첫 번째 단계는 핸드셋이 지원하는 대상 유형의 발견을 위한 구현의 질의입니다,
- 지원되는 각 대상 유형에 대해 애플리케이션은 작업 알림을 수신하기 위한 대상 리스너를 등록할 수 있습니다. 대신에 애플리케이션은 대상 작업때문에 활성을 위해 PushRegistry를 사용하여 등록할 수도 있습니다. 지원되는 대상 활동은 카드 에뮬레이션 모드 작업에서 보안 요소 및 NDEF입니다.
- 대상이 근접하면 구현은 이를 감지(발견)하며 그런 다음, 적절한 작업 리스너를 호출하여 애플리케이션에 알립니다. 또는 PushRegistry가 MIDlet을 활성화합니다.
- 발견된 각 대상에 대해 애플리케이션은 대상의 등록 정보를 파악합니다.
- 애플리케이션은 발견된 대상과 데이터를 교환, 읽기, 쓰기 및 연결할 수 있습니다.
- 완료되면 애플리케이션은 리소스를 해제하기 위해 열려 있는 연결을 모두 닫습니다.
다음 섹션에서는 비접촉식 통신 API와 일반 연결 프레임워크 사이의 관계를 다룹니다.
비접촉식 통신 API는 다음에 나타난 것과 같이 일반 연결 프레임워크(GCF)를 확장합니다.
비접촉식 통신 API는 다음과 같은 연결 관련 인터페이스를 정의합니다.
TagConnection은 모든 RFID, 스마트카드 및 NFC 연결을 위한 기반 인터페이스를 정의합니다.
ISO14443Connection은TagConnection을 확장하며 ISO 14443-4 호환 비접촉식 스마트카드와의 비접촉식 연결에 사용됩니다.PlainTagConnection은TagConnection을 확장하며 RFID(NFC가 아님) 태그와의 비접촉식 연결에 사용됩니다.NDEFTagConnection은TagConnection을 확장하며 NFC 포럼 형식의 RFID 태그 및 비접촉식 스마트카드와의 비접촉식 연결에 사용됩니다.
VisualConnection은 바코드와 같은 비주얼 태그와의 비접촉식 연결에 사용됩니다.
이 연결 프레임워크에 대한 자세한 내용은 일반 연결 프레임워크 기사를 참조하십시오.
지원 대상에 대한 발견 및 수신
플랫폼이 지원하는 대상을 발견하려면 TargetTypes 어레이를 반환하는 DiscoveryManager.getSupportedTargetTypes() 메소드를 호출합니다. 그런 다음, 각 관심 대상 유형에 대해 대상 리스너를 등록합니다. 다음 코드의 일부는 지원 대상에 대해 플랫폼에 질의한 다음, ISO 14443-4(호환 비접촉식 스마트카드) 대상 유형에 대해 대상 리스너를 등록하는 registerTargetListener() 메소드를 보여줍니다.
import javax.microedition.contactless.TargetListener;
:
DiscoveryManager dm = DiscoveryManager.getInstance();
:
/**
* 지원 대상 발견, 리스너 등록
*
* @param targetListener 대상 리스너
*/
public void registerTargetListeners(TargetListener targetListener) {
// 지원 유형 발견
TargetType[] tp = DiscoveryManager.getSupportedTargetTypes();
try {
// 각 지원 유형에 대해 리스너 등록
for (int i=0; i<tp.length; i++) {
if (tp[i].equals((TargetType.ISO14443_CARD))) {
dm.addTargetListener(
targetListener, TargetType.ISO14443_CARD);
} else...
:
:
}
}
} catch(Exception e) {
// ...
}
}
|
비접촉식 통신 API는 ISO14443_CARD, NDEF_TAG, RFID_TAG 및 VISUAL_TAG 대상 유형을 정의합니다.
위에 설명된 것과 같이 관심 대상을 발견하고 적절한 대상 리스너를 등록한 후 구현은 새 대상 발견 시 TargetListener.targetDetected(TargetProperties[]) 메소드를 호출합니다.
import javax.microedition.contactless.TargetListener;
:
/**
* 새 대상이 감지되었습니다. 이 메소드는
* 플랫폼이 호출합니다.
*
* @param prop 감지된 대상의 등록 정보
*/
public void targetDetected(TargetProperties[] prop) {
for (int i = 0; i < prop.length; i++) {
// UID 가져오기
String uid = prop[i].getUid();
// 연결 클래스 가져오기
Class[] classes = prop[i].getConnectionNames();
// 대상 유형 가져오기
TargetType[] types = prop[i].getTargetTypes();
// 각 대상에 연결
String url = prop[i].getUrl();
try {
// 대상에 NDEFTagConnection 열기
NDEFTagConnection conn =
(NDEFTagConnection) Connector.open(url);
:
:
} catch (IOException e) {
// ...
}
}
}
|
targetDetected() 메소드는 일반적으로 다음 단계를 수행합니다.
- 감지된 대상에 대해
targetDetected메소드가TargetProperties를 수신합니다. - 감지된 대상에 대해 등록 정보 개체에서 URL을 가져옵니다.
- GCF를 사용하여 대상에 연결이 이루어집니다.
- 적절한 경우, 데이터가 교환됩니다.
- 메시지 속성에 맞게 수신 메시지가 처리됩니다.
- 완료 시, 이전에 가져온 모든 리소스를 해제하고 연결을 닫습니다.
RFID 태그 판독을 위해서는 ISO14443 I/O 및 ADPU 명령이 어떻게 작동하는지 이해해야 하지만 이는 이 기사의 범위 밖의 문제입니다.
비접촉식 통신 API 는 대상의 세부 내용을 알 필요 없이 NDEF별 대상을 발견합니다. 레코드(메시지) 유형 및 처리 방법만 알면 되며 따라서 통신 및 데이터 교환 로직이 훨씬 간단해집니다. NDEF 대상을 수신하려면 NDEFRecordListener 인터페이스와 recordDetected(NDEFMessage ndefMessage) 메소드를 구현합니다. 발견 관리자 메소드 addNDEFRecordListener(listener, recordType)를 호출하여 NDEF 레코드 리스너를 등록합니다. 다음 코드의 일부는 이를 설명합니다.
import javax.microedition.contactless.ndef.NDEFRecordListener;
:
DiscoveryManager dm = DiscoveryManager.getInstance();
:
// 발견을 위해 NDEF_TAG 대상(스마트 포스터) 등록
try {
NDEFRecordType rt = new NDEFRecordType(
NDEFRecordType.NFC_FORUM_RTD, "urn:nfc:wkt:Sp");
dm.addNDEFRecordListener(this, rt);
} catch (IllegalStateException e) {
:
} catch(Exception e) {
:
}
|
정의된 NDEF 레코드 유형은 다음과 같습니다.
- EMPTY- 빈 레코드에 대한 레코드 유형 이름 형식 식별자
- EXTERNAL_RTD - NFC 포럼 명명 규약을 따르는 애플리케이션별 레코드 유형에 대한 레코드 유형 이름 형식 식별자
- MIME - RFC 2046에 정의된 MIME 유형에 대한 레코드 유형 이름 형식 식별자
- NFC_FORUM_RTD - NFC 포럼 레코드 유형 설명에 대한 레코드 유형 이름 형식 식별자
- UNKNOWN - 알 수 없는 레코드에 대한 레코드 유형 이름 형식 식별자
- URI - RFC 3986에 정의된 URI 유형에 대한 레코드 유형 이름 형식 식별자
| JSR 257 사양에 따라 형식이 EMPTY 또는 UNKNOWN일 경우, 이름은 널(null)이어야 합니다. NFC_FORUM_RTD 및 EXTERNAL_RTD 레코드 유형의 레코드 유형 이름은 NFC 포럼 RTD 사양에 정의된 명명 규칙을 따라야 합니다. 레코드 유형 이름은 US_ASCII 문자 세트의 문자만 포함해야 합니다. |
NDEF 리스너가 등록되면 요청된 NDEF에 대해 플랫폼은 recordDetected(NDEFMessage ndefMessage) 메소드를 호출하고 활성화 및 가시화된 NDEF 대상에 대해 인수로서 NDEF 메시지를 전달합니다. 그런 다음, recordDetected() 메소드는 레코드와 레코드 유형, NDEF 메시지의 다른 정보를 가져온 다음 메시지 속성에 따라 메시지를 처리합니다.
/**
* 비접촉식 대상에서 장치가 요청된 NDEF 레코드 유형을
* 발견하면 플랫폼이 호출
*
* @param ndefMessage 처리할 NDEF 메시지
*/
public void recordDetected(NDEFMessage ndefMessage) {
// NDEF 메시지에서 레코드 및 레코드 유형 가져오기
NDEFRecordType[] rTypes = ndefMessage.getRecordTypes();
NDEFRecord[] records = ndefMessage.getRecords();
for (int i=0; i<records.length; i++) {
// NDEFMessage 유형에 따라 데이터 처리
NDEFRecordType t = recordTypes[i];
NDEFRecord r = records[i];
byte[] id = r.getId();
long len = r.getPayloadLength();
byte[] p = r.getPayload();
// 레코드 처리
// ...
}
}
|
메시지 페이로드의 처리는 애플리케이션에 따라 다릅니다. 예를 들어 URL을 읽은 후 애플리케이션은 해당 URL에 정보를 게시하거나 웹 브라우저에서 해당 URL을 열 수 있습니다.
카드 에뮬레이션 모드에서 장치의 보안 요소는 RFID 하드웨어를 통해 외부 판독기와 통신 및 트랜잭션합니다. 이러한 트랜잭션은 애플리케이션에게 알려지지만 애플리케이션은 참여하지 않습니다. 다음에 설명되어 있습니다.
![]() |
설명:
- 내부 보안 요소는 외부 판독기와 상호작용합니다.
- 외부 판독기 감지 시, 애플리케이션(MIDlet)에게 알려집니다.
- 필요 시, 애플리케이션은 비접촉식 통신 API ISO14443 연결 인터페이스 또는 사용 가능한 경우, SATSA를 통해 보안 요소와 통신합니다.
보안 요소와 외부 판독기 사이의 통신은 애플리케이션에게는 투명하며 자바 카드가 외부 판독기와 통신하는 방법과 마찬가지로 APDU 명령을 사용하여 발생합니다. 자세한 내용은 자바 카드 기술 소개 - 1편을 참조하십시오. 애플리케이션과 보안 요소 사이의 통신에는 보안 요소 내의 보안 애플릿에 대한 내부 지식이 필요합니다.
| APDU 명령은 ISO7816-4 사양에 정의되어 있습니다. |
기사 자바 카드 기술 소개 - 1편에서 발췌한 다음의 다이어그램은 자바 카드 애플리케이션(이 경우, "판독기"의 역할을 하는 MIDlet의 관점)과 보안 요소("카드 측"의 역할을 함)의 일반적인 관계를 설명합니다.
설명:
- 비접촉식(NFC) 핸드셋에서 왼쪽은 내부 판독기, MIDlet 자신 또는 외부 판독기가 될 수 있습니다(NFC 카드 에뮬레이션 모드를 통해).
- 오른쪽의 "카드"는 SATSA나 JSR-257 또는 RFID 하드웨어를 통해 액세스가 가능한 내부 또는 외부 보안 요소가 될 수 있습니다.
- 모든 통신은 APDU 명령을 사용하여 발생합니다.
위에서 언급한 바와 같이, 카드 에뮬레이션 모드에서 외부 판독기 감지 시 애플리케이션에게 알려지지만 애플리케이션은 트랜잭션에 참여하지 않습니다. 또한 필요 시, 애플리케이션은 APDU 명령을 사용한 보안 요소와의 통신에 대한 책임과 보안 요소에서 실행 중인 애플릿의 내부 지식을 알아야 할 책임이 있습니다. 카드 에뮬레이션 작업 알림을 등록하려면 javax.microedition.contactless.TransactionListener 인터페이스와 externalReaderDetected(byte slot) 메소드를 구현해야 합니다. 발견 관리자 메소드 dm.addTransactionListener(...)를 호출하여 트랜잭션 리스너를 등록하십시오. 다음 코드의 일부는 이를 설명합니다.
import javax.microedition.contactless.TransactionListener;
:
:
// 트랜잭션 리스너 등록
try {
dm.addTransactionListener(this);
} catch (IllegalStateException e) {
...
} catch(Exception e) {
...
}
:
:
/**
* RFID 하드웨어에 카드 에뮬레이션 이벤트
* 발생 시, 플랫폼이 호출
*
* @param slot은 JSR 177에 정의된 APDUConnection을 외부
* 보안 요소에 대해 열기 위해 필요한 슬롯으로 슬롯을
* 식별할 수 없는 경우, UNKNOWN_SLOT 상수가
* 이 인터페이스에 정의될 수 있습니다.
*/
public void externalReaderDetected(byte slot) {
// 위의 슬롯 번호에 따라 ISO14443Connection 또는 SATSA 사용
// 애플릿에 연결, 애플릿 쿼리, 화면 업데이트 등
...
}
|
자바 카드 및 SATSA에 대한 자세한 내용은 참고 자료 섹션과 이 기사의 끝 부분을 참조하십시오.
NFC 애플리케이션 시작을 위해 PushRegistry 사용
자동 애플리케이션 활성 또는 시작은 향상된 사용자 경험을 제공하므로 NFC 기반 애플리케이션의 성공과 승인을 위해 매우 중요한 측면입니다. 판독기나 다른 NFC 장치에 근접(또는 접촉)하기만 해도 애플리케이션은 자동으로 시작됩니다. MIDP(Mobile Information Device Profile)의 일부인 PushRegistry 장치는 타이머와 연결 작업을 기준으로 자동 애플리케이션 시작을 위해 제공됩니다. 비접촉식 통신 API는 1) NDEF 레코드 유형 및 2) 보안 요소(활성) 카드 에뮬레이션 모드 통신의 경우에만 애플리케이션 시작을 위해 PushRegistry를 확장합니다.
등록에 사용되는 연결 URL은 사양에 지정된 것 처럼, 적절한 명명 규약을 따라야 합니다.
- NDEF 푸시 연결을 위한 URL 형식:
"ndef:"<record_type_format>?name=<record_type_string>
설명:- <record_type_format>은 "
rtd", "external_rtd", "mime" 또는 "uri"입니다. - <record_type_string>은 구현에 지정된 것 처럼, 완전한 레코드 유형 이름인 UTF-8 문자열입니다. 예를 들면 urn:nfc:wkt:Sp(노키아 스마트 포스터)입니다.
- <record_type_format>은 "
- 카드 에뮬레이션 작업을 위한 URL 형식:
"secure-element:"?aid=<aid_string>
설명:- <aid_string>은 ISO7816-5 사양에 따라 관심 애플릿에 대한 애플릿 식별자(숫자)를 포함하는 문자열입니다.
시작 시, 애플리케이션이 발견된 NDEF 레코드나 카드 에뮬레이션 작업에 대한 알림을 수신하도록 하려면 시작하자마자, NDEFRecordListener 및 TransactionListener를 등록해야 합니다. PushRegistry에 대한 자세한 내용은 MIDP 2.0 Push Registry를 참조하십시오.
비접촉식 통신 API는 기본 모바일 플랫폼의 보안 정책에 따릅니다. MIDP의 경우, 다음 메소드나 작업은 권한이 필요합니다.
|
메소드 또는 작업 |
권한 |
|---|---|
DiscoveryManager.getInstance() |
javax.microedition.contactless.DiscoveryManager |
NDEFMessage message 쓰기 |
javax.microedition.contactless.ndef.NDEFTagConnection.write |
NDEFTagConnection 열기 |
javax.microedition.io.Connector.ndef |
PlainTagConnection 열기 |
javax.microedition.io.Connector.rf |
ISO14443Connection 열기 |
javax.microedition.io.Connector.sc |
VisualTagConnection 열기 |
javax.microedition.io.Connector.vtag |
이 모델에서는 위의 표에 있는 권한 이름을 사용해 MIDlet-Permissions 등록 정보 항목을 작성하여 JAD 파일이나 JAR 매니페스트를 통해 권한을 요청합니다. 적절한 권한 없이 제한된 작업을 사용하고자 시도하면 시스템에 SecurityException이 발생합니다.
CDC 프로필에서 비접촉식 통신 API를 구현하려면 애플리케이션은 java.security.Permission 기반 보안 체크를 사용해야 합니다. 다음 메소드에는 권한이 필요합니다.
DiscoveryManager.getInstance()NDEFTagConnection.write(NDEFMessage message)
- JSR 257: 비접촉식 통신 API
- JSR 177: J2ME용 SATSA(Security and Trust Services API)
- NFC 포럼
- 자바 카드 기술 소개 - 1편
- 자바 카드 기술 소개 - 2편, 자바 카드 애플릿
- 자바 카드 기술 소개 - 3편, 스마트카드 호스트 애플리케이션
- J2ME용 SATSA(Security and Trust Services API), 1편
- MIDP 2.0 Push Registry
- 근접 통신(위키피디아)
- 노키아 포럼 - 근접 통신
C. Enrique Ortiz는 오랫동안 모바일 기술자, 개발자 겸 작가로 활동했습니다. 그는 About Mobility Weblog를 관리하고 있습니다. Enrique는 많은 출판물을 집필하거나 공동 집필했으며 자바 모빌리티 커뮤니티에서 열심히 활동하고 있습니다. 그는 푸에르토리코 대학에서 컴퓨터 공학 학사 학위를 취득했으며 18년 이상의 소프트웨어 엔지니어링, 제품 개발 및 관리 경력이 있습니다.
이 글의 영문 원본은
An Introduction to Near-Field Communication and the Contactless Communication API
에서 보실 수 있습니다.
"Java ME" 카테고리의 다른 글
- 블루투스와 GPS 사용: 1부 - 무선 직렬 포트 데이터 읽기 (댓글 0개 / 트랙백 0개) 2008/08/11
- 서비스 지향 아키텍처 및 자바 ME (댓글 7개 / 트랙백 0개) 2007/04/10
- destroyApp()는 당신의 친구 (댓글 0개 / 트랙백 0개) 2009/09/28
- 자바 ME 장치 매트릭스로 필터 사용 (댓글 0개 / 트랙백 0개) 2008/03/13
- Java ME를 사용한 블루레이 디스크 애플리케이션 개발 제 1 부: 나만의 애플리케... (댓글 0개 / 트랙백 0개) 2008/10/13
- 모바일 플랫폼의 비교: Java ME와 Adobe Flash Lite (댓글 0개 / 트랙백 1개) 2008/06/03
- NetBeans Mobility Pack 5.0 입문을 위한 속성 가이드 (댓글 5개 / 트랙백 0개) 2006/09/26
- 모바일 자바 플랫폼의 현재와 미래 (댓글 5개 / 트랙백 1개) 2006/07/26
- MIDlet의 로깅과 모니터링을 위한 간단한 전략 (댓글 0개 / 트랙백 0개) 2009/10/22
- 아프리카에서 전하는 소식: 이 지역에서 자바 ME 플랫폼에 주어진 과제와 기회 (댓글 0개 / 트랙백 0개) 2008/12/16








댓글을 달아 주세요