第3項. NFC機能を操作する。

 1. 端末がNFCに対応しているかどうか調べる。

端末がNFCに対応しているかどうかを調べるには、Rho::NFCManager::is_supportedメソッドを使用します。

 

Rho::NFCManager::is_supported  #=> true or false

 2. 端末のNFC機能を有効にする。

端末のNFC機能を有効にするには、Rho::NFCManager::enableメソッドを使用します。

 

Rho::NFCManager.enable  #=>NFC機能を有効にする

 3. 端末のNFC機能を無効にする。

端末のNFC機能を無効にするには、Rho::NFCManager::disableメソッドを使用します。

 

Rho::NFCManager.disable  #=> NFC機能を無効にする

 4. 端末のNFC機能が有効かどうかを調べる

端末のNFC機能が有効かどうかを調べるには、Rho::NFCManager::is_enabledメソッドを使用します。

 

Rho::NFCManager.is_enabled  #=> true or false

 5. NFCタグを検知する

端末でNFCタグを検知するには2種類の方法があります。

 

(1)Rho::NFCManager::set_nfc_callbackメソッドを使用する。


こちらのやり方では、データを読み込むことしか出来ず、各テクノロジーに対する操作はできません。主にNFCによるピアツーピア通信の際などに使用します。

 

Rho::NFCManager.set_nfc_callback(callback_url)


callback_url ・タグを検出した際に、入る処理のurlを指定します。

コールバックでは以下のパラメータを取得出来ます。
・“messages” - NdefMessageが取得出来ます。

 

(2)Rho::NfcManager::set_nfc_tech_callbackメソッドを使用する。


こちらのやり方では各テクノロジーのタグを取得する事ができ、読み込み、書き込みが行えます。

 

Rho::NFCManager.set_nfc_tech_callback(callback_url)


callback_url ・NFCテクノロジーを検出した時に、入る処理のurlを指定します。

コールバックでは以下のパラメータを取得出来ます。


・“Tag_event”- タグが発見されたかどうかが分かります。例:”discovered”

 6. NFCタグを取得する

端末で読んでいるNFCタグを取得するにはRho::NFCManager::get_current_Tagメソッドを使用します。Rho::NFCManager::set_nfc_tech_callbackメソッドで設定したコールバック内で使用します。

 

Rho::NFCManager.get_current_tag


取得に成功した場合には、Rho::NFCTagのインスタンスオブジェクトが返ります。
失敗した場合にはnilが返ってきます。

 7. アプリケーションのバックグラウンド時にNFC情報を保存して起動

アプリケーションが起動されていない、又は、アプリケーションがバックグラウンドに存在するときにNFCを検知した場合、直前のNFC情報を保存したままアプリケーションをアクティブにする為にはRho::NFCManager::perform_open_application_eventメソッドを使用します。
on_active_appメソッド内などで、使用します。

 

Rho::NFCManager::perform_open_application_event

 

例)application.rb


#このメソッドはアプリケーションがアクティブになる直前に実行されます
def on_active_app
    #NFCを有効にする
    Rho::NFCManager.enable
    #NFCを検知した場合のコールバックを設定
    Rho::NFCManager.set_nfc_callback(“app/Nfc/nfc_callback”)
    #直前のNFC情報をコールバックに渡す為のメソッドの呼び出し
    Rho::NFCManager.perform_open_application_event
end

 8. ピアツーピア通信を有効にする

NFC対応端末同士で、ピアツーピア通信を行う為には、Rho::NFCManager.p2p_enable_foreground_nde_pushメソッドを使用します。
このメソッドはフォアグラウンドで実行され続けます。

 

Rho::NFCManager.p2p_enable_foreground_nde_push(NdefMessage)

 

NdefMessageには、作成したNdefMessageを設定します。
NFC対応端末同士を近づけると、設定したNdefMessageが送信されます。

 9. ピアツーピア通信を終了する

ピアツーピア通信を終了する為には、Rho::NFCManager.p2p_disable_foreground_nde_pushメソッドを使います。

 

Rho::NFCManager.p2p_disable_foreground_nde_push

 10. バイト配列からNdefRecordを作成する

バイト配列から、NdefRecordを作成するにはRho::NFCManager::make_NdefRecord_from_byte_arrayメソッドを使用します。

 

Rho::NFCManager.make_NdefRecord_form_byte_array(array)


array にはバイト配列が入ります。

 11. ハッシュからNdefRecordを作成する

ハッシュから、NdefRecordを作成するにはRho::NFCManager::make_NdefRecord_from_hashメソッドを使用します。

 

Rho::NFCManager::make_NdefRecord_from_hash(hash)

 

hashには以下のパラメータを指定する事が出来ます。

 

  • ・“id” - タグのIDを指定出来ます。バイト配列で指定します。
  • ・“tnf” - tnfを数字で指定します。
  • ・“type” - payloadのタイプをバイト配列で指定します。
  • ・“payload” - メッセージをバイト配列で指定します

 12. バイト配列からNdefMessageを作成する

バイト配列から、NdefMessageを作成するにはRho::NFCManager.make_NdefMessage_from_byte_arrayメソッドを使用します。

Rho::NFCManager.make_NdefMessage_from_byte_array(array)
arrayにはバイト配列が入ります。

 13. NdefRecordからNdefMessageを作成する

NdefRecordから、NdefMessageを作成するにはRho::NFCManager::make_NdefMessage_from_array_of_NdefRecordメソッドをしようします。

 

Rho::NFCManager::make_NdefMessage_from_array_of_NdefRecord(array)


arrayにはNdefRecordのインスタンスが配列で入ります。

 14. NdefRecordのpayload(バイト配列)から文字列を作成する


NdefRecordのpayload(バイト配列)から文字列を作成するにはRho::NFCManager::make_string_from_payloadメソッドを使用します。

 

Rho::NFCManager::make_string_from_payload(payload, tnf, type)


各引数には、以下のような値を設定する事が出来ます。

 

  • ・“payload” - バイト配列を指定します。
  • ・“tnf” - NdefRecordのTNFを数字で指定します。
  • ・“type” - NdefRecordのpayloadの種類をバイト配列で指定します。

 15. テキスト情報の、payloadを作成する


テキスト情報のpayloadを作成するには、Rho::NFCManager::make_payload_with_well_known_textメソッドを使用します。

 

Rho::NFCManager::make_payload_with_well_known_text(language, string)


language には言語を設定出来ます。例:”en”, “ja”
stringには作成する文字列を設定出来ます。

 16. URL情報の、payloadを作成する


url情報のpayloadを作成するには2種類の方法があります。

 

(1)Rho::NFCManager::make_payload_with_absolute_uriメソッドを使用する。

 

Rho::NFCManager::make_payload_with_absolute_uri(uri_string)


uri_stringには文字列のURL情報を設定します。

 

(2)Rho::NFCManager::make_payload_with_well_known_uriメソッドを使用する。

 

Rho::NFCManager::make_payload_with_well_known_uri(prefix_code, uri_string)


各引数には以下のような値が設定出来ます。

 

  • ・prefix_code ・URL情報のプリフェックスコードを設定出来ます。
  • ・uri_string ・文字列のURL情報が設定出来ます。
システム工房エムのサイトへのリンク

住所〒690-0017 島根県松江市西津田3-2-3 TEL.0852-23-8590 FAX.0852-23-8591
Copyright 2008-2010 System Maker M,All right reserved