com.docomostar.device
クラス Bluetooth

Object
  上位を拡張 com.docomostar.device.Bluetooth

public class Bluetooth
extends Object
 [iアプリオプションAPI]

端末の Bluetooth 機能を表すクラスを定義します。

このクラスでは、端末の Bluetooth 機能を呼び出して、 外部機器の検索、機器選択、機器登録、各種設定などを行います。 外部機器が選択されると、その外部機器に対応したRemoteDeviceクラスのオブジェクトを取得します。

[Star-1.5 以降]
searchDevice() により周辺の外部機器を検索し、 見つかった外部機器の情報として DeviceDiscoveryResult オブジェクトを取得することができます。 この DeviceDiscoveryResult オブジェクトを startPairing(DeviceDiscoveryResult) の引数に指定することで機器登録ができます。 また、getDiscoveredRemoteDeviceList() により現在端末に登録されている外部機器のリストを取得することができます。

導入されたバージョン:
Star-1.0
関連項目:
RemoteDevice, BTStateListener, BTConnection, SPPConnection

フィールドの概要
static int HDP
          ヘルスデバイスプロファイルを表します(=1)。
static int OOB_CHANNEL_FELICA
          OOB の通信路として FeliCa の DataExchange 機能を利用することを表します(=0)。
static int SPP
          シリアルポートプロファイルを表します(=0)。
static int TYPE_INITIATOR
          外部機器への接続を要求することを表します(=0)。
static int TYPE_RESPONDER
          外部機器からの接続要求を待ち受けることを表します(=1)。
 
メソッドの概要
 int getDiscoveredDevice()
          ネイティブの登録機器リストに保持されている外部機器の数を取得します。
 RemoteDevice getDiscoveredRemoteDevice(DeviceDiscoveryResult targetDevice)
          指定した DeviceDiscoveryResult オブジェクトに対応した、 ネイティブの登録機器リストに保持されている外部機器を取得します。
 RemoteDevice[] getDiscoveredRemoteDeviceList()
          ネイティブの登録機器リストに保持されている外部機器のリストを取得します。
 int getInquiryTimeout()
          Inquiryの実行時間を取得します。
static Bluetooth getInstance()
          端末の Bluetooth 機能を表すインスタンスを取得します。
 int getMaxConnection(int type)
          引数に指定したプロファイルに対して、 この端末の Bluetooth 未接続状態における同時に接続可能な数を返します。
 boolean isConnectable(int type)
          引数に指定したプロファイルで外部機器とStar アプリが接続可能であるか否かを取得します。
 boolean isDetachmentMode()
          機器登録処理後に接続(ACLリンク)を切断するかどうかを返します。
 RemoteDevice scan()
          外部機器からの接続要求を待ち、 ユーザが外部機器との接続を選択した場合にRemoteDeviceオブジェクトが生成されます。
 RemoteDevice searchAndSelectDevice()
          外部機器探索を行い、ユーザによる外部機器の選択を行います。
 DeviceDiscoveryResult[] searchDevice()
          外部機器検索を行います。
 RemoteDevice selectDevice()
          ユーザによる外部機器の選択を行います。
 void setDetachmentMode(boolean flag)
          機器登録処理後に接続(ACLリンク)を切断するかどうかを設定します。
 void setInquiryTimeout(int time)
          Inquiryの実行時間を設定します。
 RemoteDevice startPairing(DeviceDiscoveryResult targetDevice)
          外部機器の検索結果を指定し、外部機器との接続を行います。
 RemoteDevice startPairingByOOB(int channel, int type, byte[] handoverId)
          Bluetooth 帯域外(Out Of Band)の通信路を用いて外部機器との接続を行います。
 void turnOff()
          Bluetooth電源をオフにします。
 
クラス Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

SPP

public static final int SPP
シリアルポートプロファイルを表します(=0)。

関連項目:
RemoteDevice.isAvailable(int), RemoteDevice.connect(int), RemoteDevice.accept(int), isConnectable(int), 定数フィールド値

HDP

public static final int HDP
ヘルスデバイスプロファイルを表します(=1)。

導入されたバージョン:
Star-1.5
関連項目:
RemoteDevice.isAvailable(int), RemoteDevice.connect(int), RemoteDevice.accept(int), isConnectable(int), 定数フィールド値

OOB_CHANNEL_FELICA

public static final int OOB_CHANNEL_FELICA
OOB の通信路として FeliCa の DataExchange 機能を利用することを表します(=0)。

導入されたバージョン:
Star-1.1
関連項目:
startPairingByOOB(int, int, byte[]), 定数フィールド値

TYPE_INITIATOR

public static final int TYPE_INITIATOR
外部機器への接続を要求することを表します(=0)。

導入されたバージョン:
Star-1.1
関連項目:
startPairingByOOB(int, int, byte[]), 定数フィールド値

TYPE_RESPONDER

public static final int TYPE_RESPONDER
外部機器からの接続要求を待ち受けることを表します(=1)。

導入されたバージョン:
Star-1.1
関連項目:
startPairingByOOB(int, int, byte[]), 定数フィールド値
メソッドの詳細

getInstance

public static Bluetooth getInstance()
端末の Bluetooth 機能を表すインスタンスを取得します。

パーミッションとしてBluetooth APIの利用が許可されているトラステッドStar アプリのみ、 このメソッドを呼び出すことができます。

端末によっては、Bluetooth 機能をサポートしていない場合があります。 その場合には、例外 UnsupportedOperationException が発生します。

戻り値:
Bluetooth 機能を表すインスタンスを返します。
例外:
UnsupportedOperationException -
端末が Bluetooth 機能をサポートしていない場合に発生します。
SecurityException -
パーミッションとしてFeliCaオンライン機能の利用、FeliCaオフライン機能の利用、FeliCaリーダ/ライタ機能の利用のいずれかが許可されている、または、ADF のFeliCaCPIDキー、ADF のFeliCaPINキーのいずれかが指定されている場合に発生します。

scan

public RemoteDevice scan()
                  throws InterruptedOperationException
外部機器からの接続要求を待ち、 ユーザが外部機器との接続を選択した場合にRemoteDeviceオブジェクトが生成されます。

メソッドを呼び出すとStar アプリはサスペンドし、 ネイティブでInquiry ScanとPage Scanが同時に実行されます。 外部機器が未登録である場合には、 ペアリング処理や登録処理がネイティブ側で行われます。 処理終了後、Star アプリはレジュームします。

戻り値:
RemoteDeviceオブジェクトを返します。 ユーザが処理をキャンセルした場合には null を返します。
例外:
SecurityException -
ロック機能などのネイティブ独自のセキュリティ設定により、Bluetoothが利用できない場合に発生します。
DeviceException -
(RACE_CONDITION)
FeliCaがオープンされている場合に発生します。
DeviceException -
(RACE_CONDITION)
サーバー側としてアドホック通信中(Propose Ad-hoc Modeコマンドを受信してからアドホック通信終了まで)に発生します。
BluetoothException -
(TIMEOUT)
Inquiry Scan または Page Scan がタイムアウトである場合に発生します。 また、以下の場合も含みます。
  • パスキー入力待ちで何も入力されない場合のタイムアウト
BluetoothException -
(SELF_MODE)
端末がセルフモードの場合に発生します。
BluetoothException -
(LINKKEY_ERROR)
外部機器との接続でリンクキーが不一致である場合(パスキー誤りを含む)に発生します。
BluetoothException -
(BUSY_RESOURCE)
[Star-1.5 以降] イベントリスナにより接続要求を待っている場合に発生します。
BluetoothException -
(UNDEFINED)
その他の原因で、接続に失敗した場合に発生します。
InterruptedOperationException -
競合条件などにより、ネイティブ機能が異常終了した場合に発生します。

selectDevice

public RemoteDevice selectDevice()
                          throws InterruptedOperationException
ユーザによる外部機器の選択を行います。

このメソッドを呼び出すとStar アプリはサスペンドし、 ネイティブに処理が切り替わります。 機器登録済みの外部機器の一覧が表示され、 ユーザが一覧から機器を選択することでRemoteDeviceオブジェクトが生成されます。 なお、一覧に選択できる機器がなかった場合には、ユーザのキャンセルでStar アプリに戻ります。

既に生成された RemoteDevice オブジェクトを dispose しない限り、 複数回このメソッドの呼び出しにより同一機器が選択されても、 同一の有効な RemoteDevice オブジェクトへの参照が返されます。 RemoteDevice オブジェクトを dispose してから、 このメソッドの呼び出しにより同一機器が選択されると、 新しく有効な RemoteDevice オブジェクトが生成されて返されます。

戻り値:
RemoteDeviceオブジェクトを返します。 ユーザが機器選択をキャンセルした場合には null を返します。
例外:
SecurityException -
ロック機能などのネイティブ独自のセキュリティ設定により、Bluetoothが利用できない場合に発生します。
DeviceException -
(RACE_CONDITION)
FeliCa がオープンされている場合に発生します。
DeviceException -
(RACE_CONDITION)
サーバー側としてアドホック通信中(Propose Ad-hoc Modeコマンドを受信してからアドホック通信終了まで)に発生します。
BluetoothException -
(SELF_MODE)
端末がセルフモードの場合に発生します。
InterruptedOperationException -
競合条件などにより、ネイティブ機能が異常終了した場合に発生します。

searchAndSelectDevice

public RemoteDevice searchAndSelectDevice()
                                   throws InterruptedOperationException
外部機器探索を行い、ユーザによる外部機器の選択を行います。

このメソッドを呼び出すとStar アプリはサスペンドし、 ネイティブに処理が切り替わります。 ネイティブで DeviceDiscovery処理が実行され周辺の外部機器情報を取得します。 その後、接続可能な外部機器の一覧が表示され、 ユーザが一覧から機器を選択することでRemoteDeviceオブジェクトが生成されます。

既に生成された RemoteDevice オブジェクトを dispose しない限り、 複数回このメソッドの呼び出しにより同一機器が選択されても、 同一の有効な RemoteDevice オブジェクトへの参照が返されます。 RemoteDevice オブジェクトを dispose してから、 こそ繝ォ縺励◆蝣エ蜷医↓縺ッ null 繧定ソ斐@縺セ縺吶