com.docomostar.io
クラス IrClientObexConnection

Object
  上位を拡張 com.docomostar.io.IrClientObexConnection
すべての実装されたインタフェース:
ClientObexConnection, ObexConnection, javax.microedition.io.Connection, javax.microedition.io.InputConnection, javax.microedition.io.OutputConnection, javax.microedition.io.StreamConnection

public class IrClientObexConnection
extends Object
implements ClientObexConnection

OBEX クライアントとして赤外線通信を行う場合の接続を定義します。

IrDA 通信のコード例については ClientObexConnection のクラス説明を参照してください。

端末によっては、IrDA 通信に加え IrSimple 片方向通信と IrSimple 双方向通信をサポートします。 IrSimple 通信機能では、connect(int) によって通信モードを指定できます。 接続確立後、getCommMode()を呼び出すことで通信モードを確認することができます。 なお、IrDA 通信のみサポートしているサーバに対して、IrSimple 双方向通信を試みた場合には、 IrSimple 通信機能の IrDA 通信互換により IrDA 通信で接続が確立されます。

IrSimple 片方向通信と IrSimple 双方向通信においては、 オペレーションとして PUT のみをサポートしています。

以下に IrSimple 片方向通信を行う場合のコード例を示します。
 try {
     IrClientObexConnection coc;
     coc = (IrClientObexConnection)Connector.open("obex:/irclient");
     coc.connect(ClientObexConnection.COMM_MODE_IRSIMPLE_UNILATERALLY); // この時点でデバイスに通電して
                                                   // CONNECT オペレーションを発行します。
                                                   // Server側からの接続要求応答がない為、
                                                   // 接続要求応答の受信が完了するまで待ちません。
     while (true) { // 複数のオペレーションを行う場合のループ。
                    // ループの中で PUT のみ指定できます。
         coc.setOperation(ObexConnection.PUT);
         coc.setName("foo");
         OutputStream out = coc.openOutputStream();
         // 書き込み処理
         out.close();
         coc.sendRequest(); // この時点で PUT オペレーションを送信します。
                            // Server側からのレスポンスがない為、レスポンスは受け取りません。
         int response = coc.getResponseCode(); // 必ずレスポンスコード「ObexConnection.SUCCESS」が返ります。
     }
     coc.close(); // IrSimple の場合、この時点で DISCONNECT オペレーションを
                  // 発行して、デバイスをオフにします。
 } catch (IOException e) {
 }
 
以下に IrSimple 双方向通信を行う場合のコード例を示します。
 try {
     IrClientObexConnection coc;
     coc = (IrClientObexConnection)Connector.open("obex:/irclient");
     coc.connect(ClientObexConnection.COMM_MODE_IRSIMPLE_INTERACTIVE); // この時点でデバイスに通電して
                                                  //  CONNECT オペレーションを発行します。
                                                  // Server側からの接続要求応答の受信が完了するまで待ちます。
     while (true) { // 複数のオペレーションを行う場合のループ。
                    // ループの中で PUT のみ指定できます。
         coc.setOperation(ObexConnection.PUT);
         coc.setName("foo");
         OutputStream out = coc.openOutputStream();
         // 書き込み処理
         out.close();
         coc.sendRequest(); // この時点で PUT オペレーションを送信して、レスポンスを受け取ります。
         int response = coc.getResponseCode();
     }
     coc.close(); // IrSimple の場合、この時点で DISCONNECT オペレーションを
                  // 発行して、デバイスをオフにします。
 } catch (IOException e) {
 }
 

導入されたバージョン:
Star-1.0

フィールドの概要
 
インタフェース com.docomostar.io.ObexConnection から継承されたフィールド
ACCEPTED, BAD_GATEWAY, BAD_REQUEST, COMM_MODE_IRDA, COMM_MODE_IRSIMPLE_INTERACTIVE, COMM_MODE_IRSIMPLE_UNILATERALLY, CONFLICT, CONTINUE, CREATED, DATABASE_FULL, DATABASE_LOCKED, DISCONNECT, FORBIDDEN, GATEWAY_TIMEOUT, GET, GONE, HTTP_VERSION_NOT_SUPPORTED, INTERNAL_SERVER_ERROR, LENGTH_REQUIRED, METHOD_NOT_ALLOWED, MOVED_PERMANENTLY, MOVED_TEMPORARILY, MULTIPLE_CHOICES, NO_CONTENT, NON_AUTHORITATIVE_INFORMATION, NOT_ACCEPTABLE, NOT_FOUND, NOT_IMPLEMENTED, NOT_MODIFIED, PARTIAL_CONTENT, PAYMENT_REQUIRED, PRECONDITION_FAILED, PROXY_AUTHENTICATION_REQUIRED, PUT, REQUEST_ENTITY_TOO_LARGE, REQUEST_TIME_OUT, REQUEST_URL_TOO_LARGE, RESET_CONTENT, SEE_OTHER, SERVICE_UNAVAILABLE, SUCCESS, UNAUTHORIZED, UNSUPPORTED_MEDIA_TYPE, USE_PROXY
 
メソッドの概要
 void close()
          CLDC の仕様に従ってこの接続をクローズする処理を実装します。
 void connect()
          接続を確立します。
 void connect(int mode) [iアプリオプションAPI]
          通信モードに対応した接続を確立します。
 int getCommMode() [iアプリオプションAPI]
          接続確立後の通信モードを取得します。
 int getContentLength()
          コンテンツの長さを取得します。
 String getName()
          NAME ヘッダを取得します。
 int getResponseCode()
           レスポンスコードを取得します。
 long getTime()
          TIME ヘッダを取得します。
 String getType()
          TYPE ヘッダを取得します。
 java.io.DataInputStream openDataInputStream()
          CLDC の仕様に従って DataInputStream オブジェクトを返す処理を実装します。
 java.io.DataOutputStream openDataOutputStream()
          CLDC の仕様に従って DataOutputStream オブジェクトを返す処理を実装します。
 java.io.InputStream openInputStream()
          CLDC の仕様に従って InputStream オブジェクトを返す処理を実装します。
 java.io.OutputStream openOutputStream()
          CLDC の仕様に従って OutputStream オブジェクトを返す処理を実装します。
 void sendRequest()
          リクエストを送信して、レスポンスの受信を完了するまで待ちます。
 void setName(String name)
          NAME ヘッダを設定します。
 void setOperation(int operation)
          オペレーションコードを設定します。
 void setTime(long time)
          TIME ヘッダを設定します。
 void setType(String type)
          TYPE ヘッダを設定します。
 
クラス Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

メソッドの詳細

connect

public void connect()
             throws java.io.IOException
接続を確立します。

定義:
インタフェース ClientObexConnection 内の connect
例外:
RuntimeException -
呼び出してはならない状態の時に呼び出された場合に発生します。
ConnectionException -
(BUSY_RESOURCE)
既に接続要求発行中の別スレッドが存在するか、別オブジェクトにより既に通信リソースが使用されている場合に発生します。
ConnectionException -
(SELF_MODE)
端末がセルフモードの場合に発生します。
java.io.InterruptedIOException -
別スレッドからの中断要求発生により、 通信が中断された場合に発生します。
IllegalStateException<