|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Objectcom.nttdocomo.device.Bluetooth
このクラスでは、端末の Bluetooth 機能を呼び出して、 外部機器の検索、機器選択、機器登録、各種設定などを行います。 外部機器が選択されると、その外部機器に対応したRemoteDeviceクラスのオブジェクトを取得します。
RemoteDevice
,
BTStateListener
,
BTConnection
,
SPPConnection
フィールドの概要 | |
static int |
SPP
シリアルポートプロファイルを表します(=0)。 |
メソッドの概要 | |
int |
getDiscoveredDevice()
ネイティブの接続機器リストに保持されている外部機器の数を取得します。 |
int |
getInquiryTimeout()
Inquiryの実行時間を取得します。 |
static Bluetooth |
getInstance()
端末の Bluetooth 機能を表すインスタンスを取得します。 |
boolean |
isConnectable(int type)
引数に指定したプロファイルで外部機器とiアプリが接続可能であるか否かを取得します。 |
boolean |
isDetachmentMode()
機器登録処理後に接続(ACLリンク)を切断するかどうかを返します。 |
RemoteDevice |
scan()
外部機器からの接続要求を待ち、 ユーザが外部機器との接続を選択した場合にRemoteDeviceオブジェクトが生成されます。 |
RemoteDevice |
searchAndSelectDevice()
外部機器探索を行い、ユーザによる外部機器の選択を行います。 |
RemoteDevice |
selectDevice()
ユーザによる外部機器の選択を行います。 |
void |
setDetachmentMode(boolean flag)
機器登録処理後に接続(ACLリンク)を切断するかどうかを設定します。 |
void |
setInquiryTimeout(int time)
Inquiryの実行時間を設定します。 |
void |
turnOff()
Bluetooth電源をオフにします。 |
クラス Object から継承したメソッド |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
public static final int SPP
メソッドの詳細 |
public static Bluetooth getInstance()
パーミッションとしてBluetooth APIの利用が許可されているトラステッドiアプリのみ、 このメソッドを呼び出すことができます。
端末によっては、Bluetooth 機能をサポートしていない場合があります。 その場合には、例外 UnsupportedOperationException が発生します。
UnsupportedOperationException
- 端末が Bluetooth 機能をサポートしていない場合に発生します。
SecurityException
- パーミッションとしてFeliCaオンライン機能の利用、FeliCaオフライン機能の利用、FeliCaリーダ/ライタ機能の利用の、いずれかが許可されている、または、ADFのFeliCaCPIDキー、ADFのFeliCaPINキーのいずれかが指定されている場合に発生します。
public RemoteDevice scan() throws InterruptedOperationException
メソッドを呼び出すとiアプリはサスペンドし、 ネイティブでInquiry ScanとPage Scanが同時に実行されます。 外部機器が未登録である場合には、接続選択後、 ペアリング処理や登録処理がネイティブ側で行われます。 処理終了後、iアプリはレジュームします。
IllegalStateException
- 待ち受け実行時の非活性化状態で呼び出された場合に発生します。
SecurityException
- ロック機能などのネイティブ独自のセキュリティ設定により、Bluetoothが利用できない場合に発生します。
DeviceException
- FeliCaがオープンされている場合に発生します(RACE_CONDITION)。
DeviceException
- サーバー側としてアドホック通信中(Propose Ad-hoc Modeコマンドを受信してからアドホック通信終了まで)に発生します(RACE_CONDITION)。
BluetoothException
- BluetoothException
- 端末がセルフモードの場合に発生します(SELF_MODE)。
BluetoothException
- 外部機器との接続でリンクキーが不一致である場合(パスキー誤りを含む)に発生します(LINKKEY_ERROR)。
BluetoothException
- その他の原因で、接続に失敗した場合に発生します(UNDEFINED)。
InterruptedOperationException
- 競合条件などにより、ネイティブ機能が異常終了した場合に発生します。
public RemoteDevice selectDevice() throws InterruptedOperationException
このメソッドを呼び出すとiアプリはサスペンドし、 ネイティブに処理が切り替わります。 機器登録済みの外部機器の一覧が表示され、 ユーザが一覧から機器を選択することでRemoteDeviceオブジェクトが生成されます。 なお、一覧に選択できる機器がなかった場合には、ユーザのキャンセルでiアプリに戻ります。
このメソッドを呼び出すことにより得られた RemoteDevice オブジェクトを dispose しない限り、 複数回このメソッドの呼び出しにより同一機器が選択されても、 同一の有効な RemoteDevice オブジェクトへの参照が返されます。 得られた RemoteDevice オブジェクトを dispose してから、 このメソッドの呼び出しにより同一機器が選択されると、 新しく有効な RemoteDevice オブジェクトが生成されて返されます。
IllegalStateException
- 待ち受け実行時の非活性化状態で呼び出された場合に発生します。
SecurityException
- ロック機能などのネイティブ独自のセキュリティ設定により、Bluetoothが利用できない場合に発生します。
DeviceException
- FeliCa がオープンされている場合に発生します(RACE_CONDITION)。
DeviceException
- サーバー側としてアドホック通信中(Propose Ad-hoc Modeコマンドを受信してからアドホック通信終了まで)に発生します(RACE_CONDITION)。
BluetoothException
- 端末がセルフモードの場合に発生します(SELF_MODE)。
InterruptedOperationException
- 競合条件などにより、ネイティブ機能が異常終了した場合に発生します。
public RemoteDevice searchAndSelectDevice() throws InterruptedOperationException
このメソッドを呼び出すとiアプリはサスペンドし、 ネイティブに処理が切り替わります。 ネイティブで DeviceDiscovery処理が実行され周辺の外部機器情報を取得します。 その後、接続可能な外部機器の一覧が表示され、 ユーザが一覧から機器を選択することでRemoteDeviceオブジェクトが生成されます。
このメソッドを呼び出すことにより得られた RemoteDevice オブジェクトを dispose しない限り、 複数回このメソッドの呼び出しにより同一機器が選択されても、 同一の有効な RemoteDevice オブジェクトへの参照が返されます。 得られた RemoteDevice オブジェクトを dispose してから、 このメソッドの呼び出しにより同一機器が選択されると、 新しく有効な RemoteDevice オブジェクトが生成されて返されます。
外部機器が未登録の場合には、選択後、ペアリングや登録処理がネイティブで行われます。 ネイティブ機能が終了後、iアプリはレジュームします。
外部機器探索と機器登録を行わず、登録済み機器を選択する場合には、selectDevice()を利用します。
IllegalStateException
- 待ち受け実行時の非活性化状態で呼び出された場合に発生します。
SecurityException
- ロック機能などのネイティブ独自のセキュリティ設定により、Bluetoothが利用できない場合に発生します。
DeviceException
- FeliCa がオープンされている場合に発生します(RACE_CONDITION)。
DeviceException
- サーバー側としてアドホック通信中(Propose Ad-hoc Modeコマンドを受信してからアドホック通信終了まで)に発生します(RACE_CONDITION)。
BluetoothException
- BluetoothException
- 端末がセルフモードの場合に発生します(SELF_MODE)。
BluetoothException
- 外部機器との接続でリンクキーが不一致である場合(パスキー誤りを含む)に発生します(LINKKEY_ERROR)。
BluetoothException
- その他の原因で、接続に失敗した場合に発生します(UNDEFINED)。
InterruptedOperationException
- 競合条件などにより、ネイティブ機能が異常終了した場合に発生します。
public int getDiscoveredDevice()
このメソッドでは登録済みの外部機器の数を返します。
public void setInquiryTimeout(int time)
周辺機器探索処理において、何秒間 Inquiry を行うかを設定します。 設定可能な探索時間は 1 〜 20 秒までです。設定した値はiアプリ終了後も有効です。
time
- 探索時間(秒)を指定します。
IllegalArgumentException
- 引数 time に 0 以下の値、または 21 以上の値が指定された場合に発生します。
public int getInquiryTimeout()
周辺機器探索処理における Inquiry の実行時間を取得します。setInquiryTimeout()で値を設定していない場合は、ネイティブで設定されている値を返します。
public boolean isConnectable(int type)
接続の可否は、iアプリが接続しようとしているものとは異なる外部機器と端末がすでにBluetoothで接続している場合、 どのプロファイルを利用して接続しているかに依存します。
なお、このメソッドで接続可能を取得した場合でも、その後に端末の接続状態が変わると、
RemoteDevice.accept(int)
、RemoteDevice.connect(int)
で、
例外 DeviceException(BUSY_RESOURCE) が発生することがあります。
type
- プロファイルを指定します。
public void turnOff()
isConnectable() が false を返したときに、このメソッドを呼ぶことで、 i アプリを終了することなくネイティブで使われている Bluetooth 接続を切断することができます。 なお、Bluetooth の電源オンは、通信や接続時にネイティブ側で自動的に行われます。
BluetoothException
- 通信中などにより、電源をオフできない場合に発生します(UNDEFINED)。
public void setDetachmentMode(boolean flag)
searchAndSelectDevice()
/scan()
に対して、
機器登録処理後に接続を切断するか継続するかを操作します。
接続を切断する場合は 引数 flag に true、
接続を継続する場合は 引数 flag に false を指定します。
このオブジェクトが生成された直後では、デフォルト値として true が設定されます。
flag
- 切断する場合は true、継続する場合は false を指定します。