com.docomostar.opt.device
クラス IrReceiver

Object
  上位を拡張 com.docomostar.opt.device.IrReceiver

public class IrReceiver
extends Object

携帯電話のネイティブ赤外線受信機能にアクセスする手段を提供します。

受信した赤外線信号の 1 パケット分のデータ列は以下のような構成となっており、 有意なデータ列「データ部(論理 0)」・「データ部(論理 1)」の羅列部分が 1 パケット分の取得データとなります。

  1. 「スタート部(リーダ)」
  2. 有意なデータ列「データ部(論理 0)」・「データ部(論理 1)」の羅列
  3. 「ストップ部(トレーラ)」

受信したパケットデータは、getInputStream()より取得した入力ストリーム(java.io.InputStream)から 読み出すことで取得できます。

InputStream による読み出し (read()) は、内部にある赤外線受信したデータを保持するバッファより バイト単位で今回要求された分を返し、バイト配列で読み出す場合の戻り値には、読み込まれたバイト数を返します。 ただし、バッファにデータが溜まっていない場合には、戻り値で -1 を返します。 また、一度読み出されたデータについては、再度読み出すことはできません。 そのため、この InputStream は mark() および reset() はサポートされておりません。

赤外線受信が停止した場合、停止前までのデータを読み出すことは可能です。 ただし、停止前のデータを一度読み出した後に、再度データの読み出しを行った時には、 それぞれ以下のような振る舞いとなります。

赤外線受信機能では、受信可能なデータ部の受信信号波形のデータ出力パターンは、 High 先行 (IrRemoteControl において PATTERN_HL をデータ出力パターンとして指定した場合と同様の信号波形) のみとなります。

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

コンストラクタの概要
protected IrReceiver()
          直接このコンストラクタを呼び出してオブジェクトを生成することはできません。
 
メソッドの概要
 void cancel()
          赤外線受信を停止します。
 java.io.InputStream getInputStream()
          赤外線受信したデータを取り出すための入力ストリームを取得します。
static IrReceiver getIrReceiver()
          赤外線受信機能のオブジェクトを取得します。
 void receive(IrReceiverParam start, IrReceiverParam stop, IrReceiverParam data0, IrReceiverParam data1, int tTimeMax, int tTimeMin)
          赤外線受信を開始します。
 
クラス Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

IrReceiver

protected IrReceiver()
直接このコンストラクタを呼び出してオブジェクトを生成することはできません。

メソッドの詳細

getIrReceiver

public static IrReceiver getIrReceiver()
赤外線受信機能のオブジェクトを取得します。

このメソッドでは、複数回呼び出された場合でも常に同じオブジェクトへの参照を返します。

端末によっては赤外線受信機能をサポートしていない場合があります。 未サポートの場合、メソッドが呼び出された時点で UnsupportedOperationException が発生します。

戻り値:
赤外線受信機能のオブジェクトを返します。
例外:
com.docomostar.lang.UnsupportedOperationException -
赤外線受信機能をサポートしていない場合に発生します。
com.docomostar.device.DeviceException -
(NO_RESOURCES)
赤外線受信で取得したデータを保持するためのバッファの確保に失敗した場合に発生します。

getInputStream

public java.io.InputStream getInputStream()
赤外線受信したデータを取り出すための入力ストリームを取得します。

このメソッドを複数回呼び出した場合、常に同じオブジェクトへの参照を返します。

戻り値:
赤外線受信したデータを読み出す入力ストリームを返します。

receive

public void receive(IrReceiverParam start,
                    IrReceiverParam stop,
                    IrReceiverParam data0,
                    IrReceiverParam data1,
                    int tTimeMax,
                    int tTimeMin)
赤外線受信を開始します。

引数 start、stop、data0、data1 には、それぞれの受信信号波形における High/Low 時間の最小値、最大値を設定した IrReceiverParam オブジェクトを指定します。

引数 tTimeMax、tTimeMin には、赤外線信号の T 時間の最小値・最大値をマイクロ秒単位で指定します。 ここで T 時間とは、家電製品協会フォーマットという規格における時間の最小単位となります。 この規格では、T 時間の組み合わせによりスタート部やデータ部、ストップ部の時間を設定することで、 各受信信号波形を識別します。

赤外線受信開始時に、前回受信したデータが InputStream に残っている場合、そのデータはクリアされます。

既に赤外線受信中の場合はこのメソッドを呼び出しても何も行いません。

以下の原因により赤外線受信が停止した場合、本メソッドでは例外は発生せず、getInputStream() から取得した InputStream の各メソッド呼び出し時に例外が発生します。

パラメータ:
start - 赤外線信号のスタート部の情報を指定します。
stop - 赤外線信号のストップ部の情報を指定します。
data0 - 赤外線信号のデータ部(論理 0 )の情報を指定します。
data1 - 赤外線信号のデータ部(論理 1 )の情報を指定します。
tTimeMax - 赤外線信号の T 時間の最大値 (usec) を指定します。
tTimeMin - 赤外線信号の T 時間の最小値 (usec) を指定します。
例外:
NullPointerException -
引数 start, stop, data0, data1 のいずれかに null が指定された場合に発生します。
IllegalArgumentException -
引数 tTimeMax, tTimeMin のいずれかに負の値が指定された場合、 あるいは最小値が最大値より大きい場合に発生します。
SecurityException -
セルフモード時に赤外線受信を行おうとした場合に発生します。
com.docomostar.device.DeviceException -
(NO_RESOURCES)
リソースの確保に失敗した場合に発生します。
com.docomostar.device.DeviceException -
(BUSY_RESOURCE)
既に赤外線送受信中の場合に発生します(OBEX 通信も含む)。
com.docomostar.device.DeviceException -
(RACE_CONDITION)
アドホック通信中の場合に発生します。
com.docomostar.device.DeviceException -
(RACE_CONDITION)
パケット通信中の場合に発生します。 以下の場合にも発生します。
  • メール着信動作中の場合
  • リモート制御によるパケット通信中の場合
  • ミュージックチャネルダウンローダが起動中の場合
  • ソフトウェア更新のダウンロード通知機能が起動中の場合
com.docomostar.device.DeviceException -
(RACE_CONDITION)
音声・テレビ電話通話中の場合に発生します。
com.docomostar.device.DeviceException -
(RACE_CONDITION)
測位中である場合に発生します。 LocationProvider.setTrackingListener(TrackingListener listener, int interval, int timeout) の引数 listener に null 以外が設定されている場合も含みます。
com.docomostar.device.DeviceException -
(RACE_CONDITION)
Bluetooth と赤外線通信の同時使用をサポートしていない端末において、 Bluetooth 通信中の場合に発生します。
com.docomostar.device.DeviceException -
(UNDEFINED)
上記以外の理由で赤外線受信の開始に失敗した場合に発生します。

cancel

public void cancel()
赤外線受信を停止します。

赤外線受信が開始されていない場合は、何も行いません。



NTT DOCOMO,INC.

本製品または文書は著作権法により保護されており、その使用、複製、再頒布および逆コンパイルを制限するライセンスのもとにおいて頒布されます。NTTドコモ(その他に許諾者がある場合は当該許諾者も含めて)の書面による事前の許可なく、本製品および関連する文書のいかなる部分も、いかなる方法によっても複製することが禁じられます。フォントを含む第三者のソフトウェアは、著作権法により保護されており、その提供者からライセンスを受けているものです。

Sun、Sun Microsystems、Java、J2MEおよびJ2SEは、米国およびその他の国における米国 Sun Microsystems,Inc.の商標または登録商標です。サンのロゴマークは、米国 Sun Microsystems, Inc.の登録商標です。

FeliCaは、ソニー株式会社が開発した非接触ICカードの技術方式です。FeliCaは、ソニー株式会社の登録商標です。

「iモード」、「iアプリ/アイアプリ」、「i-αppli」ロゴ、「DoJa」はNTTドコモの商標または登録商標です。

その他記載された会社名、製品名などは該当する各社の商標または登録商標です。