Tizen에서 NFC로 근거리 데이터 공유

근거리 자기장 통신

근거리 자기장 통신(NFC)은 밀접하게 결합된 장치의 간단한 무선 연결에 대한 인터페이스와 프로토콜을 지정하는 국제 표준 ISO/IEC 18092입니다. NFC에 대한 세 그룹의 애플리케이션 시나리오가 있습니다:

  • 무선 태그 주변 장치
  • 다른 장치 (피어-투-피어) 주변 장치
  • 판매 터미널의 지점 주변 장치

문서에서 설명된 샘플 애플리케이션은 애플리케이션 두 번째 그룹인 피어-투-피어에 속합니다.

NFC에 대한 자세한 내용은 http://www.nfc-forum.org/를 참조하십시오.

 

샘플 애플리케이션 기능

ShareContacts 샘플 애플리케이션에서는 Tizen 플랫폼의 NFC, 연락처, 메시징 및 파일 시스템 API사용 방법을 보여줍니다.

시작 후 애플리케이션에는 '이름' 속성으로 분류되어 기본 주소록에 저장된 모든 연락처 목록이 표시됩니다. 목록의 모든 요소는 "swiperight" 및 "swipeleft" 이벤트를 처리하기 위해 등록됩니다. "Swipeleft" 이벤트에서 선택한 연락처의 메시지를 표시합니다. 목록에서 하나 이상의 메시지를 확인할 수 있습니다. "Swiperight" 이벤트를 전송하려는 연락처 목록에 선택한 연락처를 추가합니다. 하나 이상의 연락처와 하나 이상의 메시지를 동시에 보낼 수 있습니다. "보내기" 버튼을 클릭한 후, 두 번째 목표를 발견하고 샘플 애플리케이션을 테스트합니다:

  • 두 개의 장치 사용: NDEF 메시지(뒷부분에서 설명)는 첫 번째 장치에서 두 번째 장치로 전달됩니다. 또한 NDEF 메시지에 포함된 기록 적재량은 첫 번째 장치의 파일 시스템(파일이 없으면 생성 또는 덮어쓰기)의 "nfc-data" 파일에 저장됩니다. 수신된 데이터는 두 번째 장치의 애플리케이션에 표시됩니다.
  • 에뮬레이터에서: NDEF 메시지에 포함된 기록 적재량은 에뮬레이터 파일 시스템의 "nfc-data" 파일에 저장됩니다. 에뮬레이터가 NDEF 메시지 수신을 시뮬레이션하는 방법은 나중에 설명합니다.

샘플 애플리케이션은 jQuery Mobile 1.2.0 프레임워크를 사용하고 jQuery 1.8.0 라이브러리를 포함합니다.

그림 1: 샘플 애플리케이션 화면 캡처

이벤트 인젝터를 사용하여 에뮬레이터에서 애플리케이션을 테스트하는 방법

NFC로 보내려면 대상을 감지해야 합니다. 에뮬레이터의 경우 Tizen SDK에서 제공하는 이벤트 인젝터를 사용할 수 있습니다.(창-> 보기 표시-> 이벤트 인젝터)

그림 2: 이벤트 인젝터: NFC 보기

 

에뮬레이터에서 새 장치를 검색하려면 피어 투 피어 섹션에서 P2P Discovered를 클릭해야 합니다. 이제 에뮬레이터에서 또는 에뮬레이터로 NDEF 메시지를 보낼 수 있습니다.

에뮬레이터에서 NDEF 메시지 보내기

이벤트 인젝터는 에뮬레이터에서 보낸 NDEF 메시지를 수신하지 못합니다. 그래서 에뮬레이터에서 애플리케이션을 실행하기 위한 별도 테스트 경로를 만들어야 합니다. 이 경로는 NDEF 메시지에 포함된 기록 적재량 쓰기로 구성되며 이러한 메시지는 사용자가 읽고 다시 에뮬레이터로 전송합니다. 즉 에뮬레이터에서 실행되는 애플리케이션이 NDEF 메시지를 자신에게 보냅니다. 에뮬레이터에서 NDEF 메시지 전송 방법은 아래 그림에 나와 있습니다.

그림 3: NDEF 메시지 전송 다이어그램

'nfc-데이터' 파일에 저장된 데이터를 확인하려면 연결 탐색기 보기를 사용해야 합니다.

연결 탐색기 보기는 SDK에 연결된 장치와 에뮬레이터를 표시합니다. 연결된 장치 및 에뮬레이터에 대한 다음 작업을 제공합니다.  

  • 연결된 장치 표시
  • 연결된 장치에 파일 작업을 제공합니다.
  • 보기 간 드래그 앤 드롭하여 프로젝트 탐색기 보기 및 연결 탐색기 보기 사이의 파일을 송수신합니다.
  • 연결된 장치에서 파일 시스템을 탐색합니다.
  • 다중 인스턴스로 에뮬레이터를 처리하기 위해 에뮬레이터 관리자를 실행합니다.

에뮬레이터의 파일 시스템을 탐색하고 샘플 애플리케이션으로 저장한 파일을 찾을 수 있습니다 (위치: mnt > ums > 문서 > nfc-data).

연결 된 장치(에뮬레이터)와 호스트 컴퓨터 간에 파일을 전송할 수 있습니다. 이렇게 하려면 원하는 호스트 컴퓨터 경로에 선택한 파일을 끌어옵니다.

그림 4: 연결된 장치에서 파일을 끌어오기

파일에는 마지막으로 송신된 NDEF 메시지 기록량만 포함됩니다. 파일 구조는 다음과 같습니다.

Identifier of the NDEF Record: Content of the NDEF Record

"NDEF 기록 콘텐츠"를 이벤트 인젝터로부터 에뮬레이터로의 새로운 NDEF 메시지 적재로 사용할 수 있습니다.

에뮬레이터로 NDEF 메시지 보내기

에뮬레이터에 NDEF 메시지를 보내려면 NDEF 메시지 적재에 대한 콘텐츠가 필요합니다. 이를 위해 먼저 에뮬레이터로부터 NDEF 메시지를 보내거나(이전 장에서와 같이) 이를 사용합니다:

BEGIN%3AVCARD%0D%0AVERSION%3A3.0%0D%0AN%3AJ.%3BMaria%3B%3B%3B%0D%0AFN%3AMaria%20J.%0D %0AORG %3A %0 D %0ATEL %3BVOICE %3BVOICE %3BPREF %3A123456789 %0 D %0AEND %3AVCARD %0 D %0A

에뮬레이터에 NDEF 메시지 보내기:

그림 5: NDEF 메시지 섹션

NDEF 메시지 섹션:

  1. 레코드 종류 이름 형식 선택: NDEF_TNF_WELL_KNOWN;
  2. 레코드 종류 이름 'T'를 입력합니다:
  3. 적재를 입력합니다.(앞서 설명);
  4. "추가"를 클릭합니다.

NDEF 메시지의 구조는 나중에 설명합니다.(NDEF 메시지 작성 및 송신)

참고: 레코드 형식 이름을 'T'로 변경합니다.(기본값은 'U'). 'T'는 텍스트 데이터를 의미합니다.

NDEF 메시지가 필요한 경우 여러 개의 NDEF 레코드를 추가할 수 있습니다.(최대:5)

에뮬레이터에 NDEF 메시지를 보내려면, 피어 투 피어 섹션에서 P2P Send[5]를 클릭합니다.(옵션이 비활성된 경우 P2P Discovered 클릭)

다른 문제가 없다면 에뮬레이터에서 실행된 샘플 애플리케이션이 수신된 NDEF 메시지 데이터를 표시합니다.

참고: 에뮬레이터로 보낸 NDEF 메시지는 연락처 또는 sms 메시지로 구성될 수 있습니다. 하나의 NDEF 메시지에 SMS를 포함하는 NDEF 레코드와 연락처를 포함하는 NDEF 레코드를 혼합할 수 없습니다. 샘플 애플리케이션에서 지원되지 않습니다.

 

두 개의 장치를 사용하여 애플리케이션을 테스트하는 방법

그림 6: 두 개의 장치를 사용한 NDEF 메시지 전송 다이어그램

두 개의 장치를 사용하여 샘플 애플리케이션 테스트하기:

  1. 두 장치에서 샘플 애플리케이션을 시작하고, 서로 가까이 이동한 후 목표를 발견해야 합니다.
  2. 연락처 또는 메시지를 추가하고 "보내기" 버튼을 클릭합니다.
  3. 받은 NDEF 메시지 데이터는 두 번째 장치에서 실행되는 샘플 애플리케이션에 의해 표시되어야 합니다.

 

애플리케이션 구성

문서에서 언급하는 Tizen API 기능을 사용하려면 config.xml 파일에 필요한 기능을 선언해야 합니다. 이를 위해 다음을 실행합니다:

  1. config.xml 파일을 엽니다.
  2. 기능 탭을 선택합니다.
  3. 기능 확인 또는 추가: http://tizen.org/api/tizenhttp://tizen.org/api/messaging.send.

설명서에서 권한 및 API에 대한 자세한 정보를 찾을 수 있습니다.(Tizen 웹 애플리케이션 프로그래밍 > 프로그래밍 가이드 > 장치)

 

NFC API

NFC 장치 전원

NFC를 사용하기 전에 장치에 기본 NFC 어댑터를 장착하고 전원 상태로 설정합니다. 

var nfcAdapter;
//contains callback functions: onattach, ondetach and onreceive
var callbacks; 

function onPowerOn() {
    detectTarget();
}
function onPowerOnFails(e) {
    console.error('Power On error: ' + e.name + " : "+ e.message);
}

try {
    nfcAdapter = tizen.nfc.getDefaultAdapter();
    callbacks = callback;
    nfcAdapter.setPowered(true, onPowerOn, onPowerOnFails);
} catch (e) {
    nfcAdapter = null;
}

장치에 기본 NFC 어댑터를 장착하려면 tizen.nfc.getDefaultAdapter() 메서드를 사용할 수 있습니다. 로컬 NFC 동작을 제어할 수 있습니다: NFC 어댑터 설정/해제하거나 대상을 지정합니다. 어댑터를 작동하려면, setPowered() 함수를 사용해야 합니다. 이 메서드는 다음 매개 변수를 취합니다: NFC 어댑터 상태, (boolean) 설정, 콜백 함수의 성공(onPowerOn) 및 오류(onPowerOnFails). 콜백은 선택 사항입니다.

다른 장치 검색

detectTarget() 메서드는 NFC 피어-투-피어 대상이 감지될 때(onSuccess) 호출될 콜백 함수를 등록하기 위해 setPeerListener() 메서드를 호출합니다. 오류가 발생할 경우 오류 콜백 함수(err)가 호출됩니다.

try {
    nfcAdapter.setPeerListener(onSuccess, err);
} catch (e) {
    console.error(e.name + " : " + e.message);
}

onSuccess() 메서드는 장치를 사용할 수 있을 때 호출되는 onattach 콜백 함수와 사용할 수 없을 때 호출되는ondetach 콜백 함수를 지정합니다.

var nfcTarget;

var onSuccess = {

    onattach : function sucAttach(target) {
        nfcTarget = target;
        nfcTarget.setReceiveNDEFListener(onreceive, err);
        callbacks.onattach();
    },

    ondetach : function() {
        nfcTarget = null;
        callbacks.ondetach();
        nfcTarget.unsetReceiveNDEFListener();
    }
};

Onattach 함수를 호출하는 대상에 연결:

  • 대상 장치를 나타내는 NFCPeer 개체를 받습니다. NFCPeer 개체는 전역 변수 nfcTarget에 할당됩니다.
  • setReceiveNDEFListener() 메서드를 호출합니다.

setReceiveNDEFListener() 메서드는 연결된 NFC 피어-투-피어 대상으로부터 NDEF 메시지를 받을 때 호출할 콜백 함수를 등록합니다. 이 메서드는 두 개의 매개 변수를 가집니다: 메시지를 성공적으로 수신하는 경우 호출되는 성공(onreceive)과 오류 (err) 콜백.

Callbacks.onreceive() 메서드는 다음과 같습니다.

onreceive: function(message) {
    if (message.records[0].text.substring(0, 3) === "sms")
        messageManager.handleMessageReceive(message);
    else
        contactsManager.handleContactReceive(message);
}

위의 함수에 대해서는 나중에 설명합니다.

장치를 사용할 수 없게 될 때 ondetach() 함수가 호출됩니다. 전역 변수 nfcTarget에 null 값을 할당하고 연결된 NFC 피어-투-피어 대상에서 NDEF 메시지를 받는 수신기의 등록을 취소하는 unsetReceiveNDEFListener() 메서드를 호출합니다. 애플리케이션 수명 동안에는 횟수에 관계 없이 수신기를 설정 및 해제할 수 있습니다.

NDEF 메시지 작성 및 보내기

NFC 표준 개발자를 사용하여 텍스트 또는 이진 데이터를 전송할 수 있습니다. 일반적으로 송신 데이터 형식은 NFC 데이터 교환 형식(NDEF)이라고 합니다. NDEF는 NFC 장치 및 태그 간의 공통 데이터 형식을 정의합니다. 자세한 내용은 NDEF에 대한 웹 페이지를 참조하십시오.

그림 7: 샘플 애플리케이션에서의 NDEF 메시지 구조

샘플 애플리케이션의 경우 NDEF 메시지는 레코드로 구성되며 모든 레코드에는 sms 메시지 또는 연락처가 포함됩니다.

그림 8: NFC로 연락처 보내기 & 그림 9: NFC로 메시지 보내기

샘플 애플리케이션은 NFC 어댑터를 사용합니다. "보내기" 버튼을 클릭하면 두 번째 장치가 연결 되어 있는지 샘플 애플리케이션이 확인합니다. 이 경우, NDEF 메시지가 보내집니다. 그렇지 않으면, 관련 팝업 메시지가 표시됩니다.

NDEF 메시지를 보내려면, 샘플 애플리케이션은 sendTextNDEF() 함수를 사용합니다. 두 개의 매개 변수를 가집니다:

  • 문자열로 변환된 연락처/메시지 본문을 포함하는 recordsToSend 배열
  • 보내기 작업의 성공 (callback.success) 또는 실패 (callback.error)를 처리하는 개체 형식입니다.

메서드의 코드는 다음과 같습니다.

var textRecords = [];

try {
    for (i in recordsToSend) {
        textRecords.push(
            new tizen.NDEFRecordText(encodeURIComponent(recordsToSend[i]),
                                                  'en-US', 'UTF16'));
    }

    var ndefMessage = new tizen.NDEFMessage(textRecords);
    nfcTarget.sendNDEF(ndefMessage, callback.success, callback.error);
} catch (e) {
    console.error("Error: " + e.message);
}

encodeURIComponent() 메서드는 recordsToSend 배열에서 특수 문자를 인코딩합니다. 인코딩된 문자열은 NDEF 레코드 개체를 만드는 첫 번째 매개 변수로 사용됩니다. 두 번째 및 세 번째 매개 변수는 언어 코드 문자열 값 ('KO') 및 인코딩된 형식 ('UTF16')입니다. 생성된 NDEFRecordText 개체는 textRecords 배열에 포함됩니다. 샘플 애플리케이션은 배열을 사용하여 NDEF 메시지를 생성합니다. 메시지를 만들 때 nfcTarget.sendNDEF() 메서드를 사용하여 NFC 피어-투-피어 대상 장치에 전송됩니다. 이 메서드는 세 개의 매개 변수를 가집니다: 보낼 NDEF 메시지(ndefMessage)및 성공 (callback.success) 또는 실패 (callback.error) 상황을 처리 하는 두 개의 콜백 함수.

참고: 텍스트 레코드는 NFC 포럼 잘 알려진 형식으로 "T"로 표시됩니다. (NFC 이진 인코딩: 0x54)

recordsToSend 배열은 문자열로 변환할 연락처 또는 연락처와 구별하기 위해 초기에 추가된 'sms'와 함께 JSON으로 변환된 메시지를 포함합니다.

NDEF 메시지 수신

그림 10: 수신 메시지를 표시하는 페이지 & 그림 11: 수신 연락처를 표시하는 페이지

앞서 내용과 같이 메시지를 받을 경우 onreceive() 메서드가 호출 됩니다:

onreceive: function(message) {
    if (message.records[0].text.substring(0, 3) === "sms")
        messageManager.handleMessageReceive(message);
    else
        contactsManager.handleContactReceive(message);
}

함수는 받은 메시지의 형식 (sms 메시지 또는 연락처)를 인식하고 적절한 처리기를 호출합니다.

handleMessageReceive() 메서드는 NDEF 메시지의 모든 레코드를 디코딩하고 다음과 같이 레코드 배열 에 추가합니다.

    var records = [];

    // Read received data to 'records' array
    for (var i = 0; i < message.records.length; i++) {

        try {
            records[i] =
    jQuery.parseJSON(decodeURIComponent(message.records[i].text.slice(3)));
        } catch (e) {
            shareContacts.onError(e);
        }
    }

메소드 jQuery parseJSON()는 JSON 문자열이라는 하나의 매개 변수를 가지며 Javascript 개체를 반환 합니다.

메서드는 다음 표시 페이지를 설정하고 수신 (또는 검색) 메시지 항목을 만듭니다. 모든 항목에는 수신 날짜와 최대 14개 초기 문자 메시지가 포함됩니다. 목록의 요소는 "swipeleft" 이벤트를 처리하기 위해 등록됩니다. "Swipeleft" 이벤트는 메시지의 전체 본문을 볼 수 있는 메시지 표시 메시지 페이지를 엽니다.

수신된 NDEF 메시지에 연락처 데이터가 있으면 handleContactReceive() 함수가 호출됩니다. 이 메서드는 수신된 데이터로부터 연락처를 만들고 이를 receivedContacts 전역 배열에 넣습니다. 또한 새 페이지를 열고 각각의 "주소록에 추가" 옵션과 함께 수신된 연락처를 표시합니다. 수정하지 않고 수신된 연락처를 추가하거나 필요에 맞게 수정할 수 있습니다. 주소록에 연락처를 만들고 추가하는 방법은 나중에 설명합니다.

 

메시징 API

메시징 API는 메시지 서비스 검색, SMS 메시지 보내기, 메시지 검색 및 관리 등의 기능에 대한 액세스를 제공합니다. 메시징 API의 일부를 사용하려면 (앞서 설명한) config.xml 파일에 필요한 기능을 선언해야 합니다.

메시징 API에 대한 자세한 내용은 여기서 확인할 수 있습니다.

메시지 찾기

메시지 개체는 정보(예: 받는 사람, 보낸 사람, 제목, 본문, 유형, 등)를 저장할 수 있으며 애플리케이션 이 MessageStorage 메서드를 통해 메시지의 콘텐츠를 검색할 수 있도록 합니다.

샘플 애플리케이션에서 선택한 전화번호로부터 받은 메시지(구문)를 검색합니다. 이를 위해 이와 같은 필터를 만들어야 합니다.

var fromFilter = new tizen.AttributeFilter("from", "EXACTLY", phrase);

작성된 필터는 서비스 개체의 findMessages() 메서드에 전달됩니다. 서비스 개체를 얻으려면 다음을 수행하십시오.

tizen.messaging.getMessageServices('messaging.sms', onGetServices, shareContacts.onError);

getMessageServices()는 지정된 계정에 대한 특정 유형의 메시징 서비스를 검색합니다. 이 메서드는 4 개의 매개 변수를 가집니다: 검색할 서비스의 형식 (이 샘플 애플리케이션에서 SMS 서비스 개체를 획득합니다. 그래서 "messaging.sms" 형식, 성공 및 오류 콜백 및 serviceId (이 샘플 애플리케이션에서 생략)를 사용합니다. 세 번째 및 네 번째 매개 변수는 선택 사항입니다.

메시지 서비스를 찾는 데 성공한 경우 성공 콜백 함수는 장치에서 사용 가능한 MessageService 개체 (서비스)의 배열을 반환합니다. 하나의 서비스만 반환된다고 가정합니다. 

function onGetServices( services ) {
    try {
        services[0].messageStorage.findMessages(fromFilter, callback.success, callback.error);
    } catch (e) {
        console.error("Searching failed: " + e.name + ":" + e.message);
    }
}

서비스 개체를 사용하여 fromFilter (앞서 설명한)와 성공 및 오류 콜백 매개 변수로 findMessages() 메서드를 호출합니다. Callback.success 함수는 messageManager.display() 메서드를 호출 합니다(앞에서 설명).

'임시 보관함' 폴더에 메시지 저장

그림 9는 수신 메시지를 표시하는 페이지를 보여줍니다. 목록에서 각 항목을 선택하고 '저장' 버튼을 클릭하면 '임시 보관함' 폴더에 저장할 수 있습니다.

for (var i = 0; i < checkedMessages.length; i++) {
    // Create message
    var message = new tizen.Message("messaging.sms", {
        plainBody : displayedMesssages[checkedMessages[i]].body
    });

    // Save message in Drafts
    messages.addToDraft(message,{
        success : function() {
            console.log("Messages added to Draft Messages Folder");
        },
        error : function(e) {
            console.error("Cannot add message to draft folder: " + e.message);
        }
    });
}

checkedMessages는 선택된 메시지의 Id를 포함하는 배열입니다. displayedMessages는 수신 메시지를 포함하는 배열입니다. '저장' 버튼을 클릭하면 샘플 애플리케이션은 선택된 메시지(표시 메시지로부터) 본문을 사용하여 addToDraft() 메서드의 첫 번째 매개 변수로 사용되는 새 메시지 개체를 만듭니다. addToDraft() 메서드는 다음과 같습니다.

addToDraft : function(message, callback) {

    function onGetServices(services) {
        try {
            services[0].messageStorage.addDraftMessage(message,
                                         callback.success, callback.error);
        } catch (e) {
            console.error("Searching failed: " + e.name + ":" + e.message);
        }
    }

    tizen.messaging.getMessageServices('messaging.sms', onGetServices, shareContacts.onError);
}

getMessageServices() 메서드는 이전 장에서 이미 설명하였습니다.

메시지 서비스를 찾는 데 성공할 경우 성공 콜백 함수는 장치에 사용 가능한 MessageService 개체 (서비스)의 배열을 반환합니 서비스 개체를 사용하여 메시지(앞서 설명한), 성공 및 오류 콜백 매개 변수로 addDraftMessage() 메서드를 호출합니다: 이 메서드는 Messagestorage에 임시 보관함에 저장된 메시지를 추가합니다. NFC 메시지 수신은 임시 보관함 폴더에서 찾을 수 있습니다.

 

Contact API

tizen.contact 개체는 전화 번호, 이메일 주소 등의 정보를 포함합니다. Contact API는 읽기, 만들기, 제거 및 특정 주소록에서 연락처를 업데이트 하는 기능을 제공합니다. 연락처 기능을 사용하려면 config.xml 파일에 필요한 기능을 선언해야 합니다(앞서 설명).

Contact API에 대한 자세한 내용은 설명서 및 주소록 관리 문서를 참조하십시오.

VCARD로 연락처 변환

AddressBook 개체의 인스턴스를 가져와야 연락처를 추가, 업데이트 또는 삭제할 수 있습니다. 다음 메서드를 사용하여 기본 주소록을 가져올 수 있습니다. 

var addressbook = tizen.contact.getDefaultAddressBook();

기본 주소록을 검색한 후 연락처 인스턴스를 얻을 수 있습니다.

for (var i = 0; i < contactsToSend.length; i++) {
    contactData = addressbook.get(contactsToSend[i]);
}

ContactsToSend 배열은 송신하려는 연락처 Id를 포함합니다.

vCard 3.0 형식을 사용하여 얀락처 항목을 문자열 형식으로 일련화할 수 있습니다. 

try {
    var textNDEF = contactData.convertToString("VCARD_30");
    console.log('textual representation of the contact is: ' + textNDEF);
} catch (err) {
    console.error('The following error occurred while converting: ' + err.name);
    return;
}

vCard 3.0 형식은 유일하게 Tizen 플랫폼에서 지원됩니다. 내보내려는 연락처 정보가 포함됩니다. 연락처 교환 형식은 RFC 2426 vCard MIME 디렉터리 프로필을 정의합니다.

연락처 작성 및 추가

수신 NDEF 메시지에 연락처 데이터가 포함되면 새 연락처가 생성되고 나중에 주소록에 추가할 수 있습니다.

연락처 개체를 만들 수 있습니다.

  • 다음과 같이 vCard 3.0 형식의 문자열 표시(이전에 문자열로 변환된 연락처)를 사용합니다:
var tmp = new tizen.Contact(contactData, "VCARD_30");
  • 연락처 개체의 특성을 다음과 같이 설정:
var contact = new tizen.Contact({
    name : new tizen.ContactName({
        firstName : tmp.name.firstName,
        lastName : tmp.name.lastName
    }),
    phoneNumbers : [
               new tizen.ContactPhoneNumber(tmp.phoneNumbers[0].number) ]
});

위의 방법 중 둘 다 사용합니다.

샘플 애플리케이션으로 전화번호부에 새 연락처를 추가할 수 있습니다. '주소록에 추가' 버튼을 클릭하면 추가할 연락처의 전화번호가 주소록에 있는지 확인하는 함수가 호출됩니다. 이 경우, 관련 팝업이 표시되고 이 번호의 복제 여부를 결정할 수 있습니다. 그렇지 않으면, 다음과 같은 방법으로 연락처가 추가됩니다.

add : function(contact) {

    try {
        addressbook.add(contact);
    } catch (e) {
        console.error("Unable to add contact to address book");
        return false;
    }

    return true;
},

주소록의 인스턴스 개체(주소록)를 얻는 방법은 이전 장에 설명되어 있습니다. add () 메서드는 하나의 매개변수 즉 추가될 연락처만 사용할 수 있습니다.

 

Filesystem API

Tizen Filesystem API를 사용하여 장치의 파일 시스템에 액세스할 수 있습니다. 파일 시스템 개체의 기능을 사용하려면 config.xml 파일에 필요한 기능을 선언해야 합니다 (앞서 설명한).

Filesystem API에 대한 자세한 내용은 설명서를 참조하십시오.

샘플 애플리케이션은 디렉터리 경로 확인, 파일 만들기 및/또는 파일에 쓰기를 확인하는데 FileSystem API를 사용합니다. 이러한 작업에 대한 정보는 "Tizen에서의 사용자 정의 2D 그래픽"('Filesystem Tizen 장치 사용하기' 장)에서 찾을 수 있습니다.

 

요약

이 문서에서 배운 내용은 다음과 같습니다:

  • NFC API를 사용하여 연결된 장치를 검색하고 NDEF 레코드를 작성하며 NDEF 메시지를 작성/송신/수신하는 방법
  • Tizen 에뮬레이터에서 NFC 기능을 테스트하는 방법
  • 이벤트 인젝터를 사용하는 방법
  • 연결 탐색기 보기를 사용하여 에뮬레이터에서 파일 시스템을 탐색하는 방법
  • 선택한 연락처에 대한 메시지를 찾는 방법
  • '임시 보관' 폴더에 메시지를 저장하는 방법
  • 연락처를 VCARD 3.0으로 변환하는 방법
  • 연락처를 만드는 방법
  • 기본 주소록에 연락처를 추가하는 방법

이 문서가 NFC 기능을 활용하여 Tizen 웹 애플리케이션 만드는 데 도움이 되기를 바랍니다. NFC를 사용하여 URL, 지리 좌표 등과 같이 두 개의 밀접하게 연결된 장치 간에 짧은 텍스트 데이터를 전송하기는 매우 쉽습니다.

첨부 파일: