|
||||||||||
フレームあり フレームなし | ||||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Cメールによる通信を制御する
javax.microedition.io.Connector.openメソッドの"cmail"スキームに対応
"cmail://[tel-no]"
tel-noを指定した場合には、tel-noが表す端末に接続要求をだす。
tel-noを指定しなかった場合には、接続要求を待ち受ける状態になる。
起動時に起動要因が、”Cメール起動要求”になっていた場合には、tel-no無指定のopenは、
即時に成功する。
tel-noは数字、空白、'P'、'-'から成る。それ以外が指定されたら
IllegalArgumentExceptionが発生する。
既にコネクションが開かれている場合には(起動属性Cメールを受けて起動した場合、起動後に接続要求を
受けた場合など)tel-noを指定してオープンすると、IOExceptionが発生する。
デフォルトの送信モードは、連続メールモード(※)とする。
各種設定メソッドは、送受信メソッドを行う前にのみ有効とし、一度でも送受信メソッドをコールした後に
設定を行った場合には、IllegalStateExceptionが発生する。
起動要求を受けて起動したアプリケーションは、必ずcmailスキームをopenしなければならない。
起動要因は、java.lang.System.getProperty()の、"kddi.system.wakeupMode"キーで取得する。
0=通常起動、1=Cメール起動要求を受けて起動、2=アラーム起動
状態遷移は下記のようになる。○はブロックすることを表し、完了まで帰らない。特に●はVM全体がブロック
することを表す。
"cmail"スキームに対するオープンは、受け付けと、要求で各1インスタンスしか生成できない。
二重にオープンしようとした場合には、あとからのオープンは、IllegalStateExceptonが発生する。
一時圏外などによって、セッション確立後に再度接続要求を受けた時には、既接続のセッションに対する
receive, sendはIOExceptionとなる。その場合には、既接続のセッションをcloseし、再度、open -> accept
というシーケンスが必要となる。
※「連続モード」はKDDIによって公式の認定を受けた場合にのみ利用することができます。
■起動要求受付側 ┌───────────┐ │初期状態 │ └───────────┘ │○open("cmail://")↑ │ │ ↓ ○close()│ ○───────────┐ │相手先情報 │getTelNo() │取得可能状態 │getNickName() │ │getMessage() │ │getMode() │ │setNickName() └───────────┘ │○close() │○accept()連続モードのみ │ ↓ │ ●────────┐ │ │入室完了待ち状態│ │ └────────┘ │ │入室完了 │ ↓ │ ┌───────┐ │ │送受信可能状態│○send() │ │ │○receive() │ └───────┘ │ │○close() │ │ ↓ ↓ ┌──────────┐ │初期状態 │ └──────────┘ ■起動要求送信側 ┌──────────────┐ │初期状態 │ └──────────────┘ │○open("cmail://telno") ↑ │ │ ↓ ○close()│ ┌──────────────┐ │メッセージ情報設定 │setSingleMode() │可能状態 │setMultipleMode() │ │setNickName() │ │setMessage() │ │ └──────────────┘ │○connect() │○sendTo() ↓連続モードのみ ↓単発モードのみ ●───────┐ ●────────┐ │受諾待ち状態 │ │送信完了待ち状態│ └───────┘ └────────┘ │受諾受信 送信完了受信│ │ ↓ │ ┌────────┐ │ │終了待ち状態 │ │ └────────┘ │ ○close()│ ↓ │ ┌───────┐ │ │送受信可能状態│○send() │ │ │○receive() │ └───────┘ │ │○close() │ │ │ ↓ ↓ ┌──────────────────┐ │初期状態 │ └──────────────────┘
フィールドの概要 | |
static int |
CONNECT_FAILURE
網状態などによりaccept()、connect()が失敗したときの戻り値。 |
static int |
CONNECT_NO_SUPPORT
Cメールチャット非対応のためにaccept()、connect()が失敗したときの戻り値。 |
static int |
CONNECT_SUCCESS
accept()、connect()が成功したときの戻り値。 |
static int |
encDgramSize
|
static int |
MULTI_MODE
連続モードであることを表す |
static int |
rawDgramSize
|
static int |
SINGLE_MODE
単発モードであることを表す |
メソッドの概要 | |
int |
accept()
連続モードでの接続要求を受けている状態で、受諾要求を発行する。 |
int |
connect()
連続モードで接続要求を発行する。 |
java.lang.String |
getMessage()
通信相手からのメッセージを取得する。 |
int |
getMode()
通信モードを取得する |
java.lang.String |
getNickName()
通信相手のNickNameを取得する。 |
java.lang.String |
getTelNo()
通信相手のtel-noを取得する。 |
void |
sendTo()
単発メールを送信する。 |
void |
setMessage(java.lang.String message)
送信メッセージを設定する。 |
void |
setMultipleMode()
送信モードを連続メールモードに設定する。 |
void |
setNickName(java.lang.String nickname)
ニックネームを設定する。 |
void |
setSingleMode()
送信モードを単発メールモードに設定する。 |
インタフェース javax.microedition.io.DatagramConnection から継承したメソッド |
getMaximumLength, getNominalLength, newDatagram, newDatagram, newDatagram, newDatagram, receive, send |
インタフェース javax.microedition.io.Connection から継承したメソッド |
close |
フィールドの詳細 |
public static final int rawDgramSize
public static final int encDgramSize
public static final int SINGLE_MODE
getMode()
public static final int MULTI_MODE
getMode()
public static final int CONNECT_SUCCESS
public static final int CONNECT_FAILURE
public static final int CONNECT_NO_SUPPORT
メソッドの詳細 |
public void setSingleMode()
public void setMultipleMode()
public void setNickName(java.lang.String nickname)
public void setMessage(java.lang.String message)
public java.lang.String getTelNo() throws java.io.IOException
public java.lang.String getNickName() throws java.io.IOException
public java.lang.String getMessage() throws java.io.IOException
public int getMode() throws java.io.IOException
SINGLE_MODE
,
MULTI_MODE
public int accept() throws java.io.IOException
CONNECT_SUCCESS
,
CONNECT_FAILURE
,
CONNECT_NO_SUPPORT
public int connect() throws java.io.IOException
CONNECT_SUCCESS
,
CONNECT_FAILURE
,
CONNECT_NO_SUPPORT
public void sendTo() throws java.io.IOException
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |