|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--com.j_phone.system.DeviceControl
DeviceControlクラスは、機器端末に固有なデバイスを制御する機能を提供します。下記の機能があります。
getDefaultDeviceControl()
を使って取得してください。以下、DeviceControlクラスのそれぞれの機能について説明します。
getDeviceState()
メソッドでデバイスの状態が取得できます。getDeviceState()
メソッドには、取得したい情報の種類を識別するためのパラメータを与えます。
指定可能なパラメータと取得できる状態は下記のようになります。
パラメータ | getDeviceState(int)が返す情報 |
BATTERY | バッテリー残容量(%) |
FIELD_INTENSITY | 端末が検出している電界強度(%) |
KEY_STATE | 個々のキーがビット割付けされた値。押されているキーに対応するビットが1で示されます。2重押しなどの操作を検出できます。 |
FLIP_STATE | 折りたたみ式機器の開閉状態 |
MEMORY_CARD | メモリカードの装着状態 |
SPEAKER_STATE | 音声の出力先 |
LCDバックライトの制御は、setDeviceActive()
メソッドで点灯するか、またはblink()
メソッドで点滅する2つの方法があります。
setDeviceActive()
メソッドを使う場合は、deviceNoパラメータに、DeviceControl.BACK_LIGHTを指定します。
点灯させるには、同メソッドのactiveパラメータにtrueを、デバイスの設定状態に戻すにはfalseを指定します。
blink()
メソッドには、点滅周期における点灯時間と消灯時間、及び点滅の繰り返し回数を指定します。一旦blink()
メソッドで点滅を開始させたら、点滅が終了するまでblink()
メソッドを呼び出さないでください。呼び出した場合はIllegalStateException例外が発生します。また、blink()
メソッドで点滅している間にsetDeviceActive()
メソッドでLCDバックライトを制御した場合はblink()
メソッドでの点滅は停止し、setDeviceActive()
メソッドでの設定が有効になります。
端末のバイブレータを制御するには、setDeviceActive()
メソッドのdeviceNoパラメータに、DeviceControl.VIBRATIONを指定します。バイブレータを作動させるには、同メソッドのactiveパラメータにtrueを、停止させるにはfalseを指定します。
キーリピートイベントとは、キーを押し続けた場合に定期的に発生するキーイベントのことです。
setKeyRepeatState()
メソッドで、個別のキーに対してキーリピートイベント発生の有無を指定できます。
キーはCanvasクラスで規定されているキーコードで指定してください。また、getKeyRepeatState()
メソッドで、個別のキーに対してキーリピートイベントが発生するように設定されているかどうかを確認できます。
5. 8方向キーの状態取得
setDeviceActive()
メソッドの引数deviceNoにEIGHT_DIRECTIONS、引数activeにtrueまたはfalseを指定すると、「8方向キーの状態取得」をオン、またはオフにできます。「8方向キーの状態取得」がオンのときは、getDeviceState()
にKEY_STATEを指定したときに得られるキー状態の斜め方向キーのビット(右上キー、左上キー、左下キー、右下キー)が有効になります。「8方向キーの状態取得」がオフのときは無効になります。
初期状態では、「8方向キーの状態取得」はオフです。
getDeviceState(KEY_STATE)
は、上下左右キーの状態に基いて斜めキーの状態を合成して報告します。下記のようになります。押されているキー | getDeviceState()が返す、押されているキー |
右、上 | 右上 |
上、左 | 左上 |
左、下 | 左下 |
下、右 | 右下 |
右、上、左 | 右上、左上 |
上、左、下 | 左上、左下 |
左、下、右 | 左下、右下 |
下、右、上 | 右下、右上 |
右、上、左、下 | 右上、左上、左下、右下 |
getDeviceState(KEY_STATE)
は斜め方向キーは常に押されていない状態を報告します。
getDeviceState(KEY_STATE)
が返すキー状態は「上キー」と「右キー」のビットが1、「右上キー」のビットは0になります。
MotionDetectiveSensor.KEY_SENSOR
モード)による「8方向キーの状態取得」がオンの場合のキー検出
getDeviceState(KEY_STATE)
は、上下左右キーの状態に基いて斜めキーの状態を合成して報告します。下記のようになります。検出されているキー | getDeviceState()が返すキー |
センサ右、センサ上 | センサ右上 |
センサ上、センサ左 | センサ左上 |
センサ左、センサ下 | センサ左下 |
センサ下、センサ右 | センサ右下 |
MotionDetectiveSensor.KEY_SENSOR
モード)による「8方向キーの状態取得」がOFFの場合
getDeviceState(KEY_STATE)
は斜め方向は常に押されていない状態を報告します。
getDeviceState(KEY_STATE)
が返すキー状態は「センサ上」と「センサ右」のビットが1、「センサ右上」のビットは0になります。
Canvas派生クラスのkeyPressed()メソッドまたはkeyReleased()メソッドで待ち受け可能な方向キーはLEFT、RIGHT、UP、DOWNの4方向だけです。斜め方向のキー押下イベントは通知されません。斜め方向キー入力の検知を可能にするには、DeviceControl のsetDeviceActive()
メソッドで「8方向キーの状態取得」をオンに設定します。そして、keyPressed()またはkeyReleased()でLEFT、RIGHT、UP、DOWNのいずれかのキーについて変化を検出したら、DeviceControl のgetDeviceState(KEY_STATE)
で斜め方向キーの状態を確認してください。
表3に示すメソッドによって機器が把握している現在位置に関する情報を取得することができます。 いずれのメソッドも機器が要求された情報を保持していない場合は、IllegalStateExceptionが発生します。
メソッド | 機能 |
---|---|
getLatitude() |
現在の緯度を取得します。 北緯を正の値であらわします。-324000〜324000の範囲の値が返ります。 |
getLongitude() |
現在の経度を取得します。 東経を正の値であらわします。-648000〜648000の範囲の値が返ります。 |
getPlaceName() |
現在位置の地名を取得します。 |
updateLocationInfo()
メソッドを呼び出すことで、端末が把握している現在位置に関する情報を更新することができます。
更新結果(成功または失敗)は LocationUpdateListenerインタフェースの locationUpdated()
メソッドによって通知されます。
表4に示すメソッドによって機器に固有なイベントを待ち受けるためのリスナを登録することができます。 いずれのメソッドも最後に登録されたリスナにイベントが通知されます。
メソッド名 | 機能 |
setMailListener() |
メール着信などを待ち受ける、MailListenerインタフェースを実装したリスナを登録します。 |
setScheduledAlarmListener() |
スケジュールアラーム発生イベントを待ち受ける、ScheduledAlarmListenerインタフェースを実装したリスナを登録します。 |
setTelephonyListener() |
電話の着信などのイベントを待ち受ける、TelephonyListenerインタフェースを実装したリスナを登録します。 |
setRingStateListener() |
プラットフォームでの着信通知開始・終了イベントを待ち受ける、RingStateListenerインタフェースを実装したリスナを登録します。 |
setBodyOpenListener() |
折りたたみ式機器の開閉状態のイベントを待ち受ける、BodyOpenListenerインタフェースを実装したリスナを登録します。 |
setLocationUpdateListener() |
位置情報の更新結果を待ち受ける、LocationUpdateListenerインタフェースを実装したリスナを登録します。 |
setPhoneStateListener() |
メールボックス・アドレス帳・ファイルフォルダの変更通知を待ち受ける、PhoneStateListenerインタフェースを実装したリスナを登録します。 |
setMemoryCardListener() |
メモリカードの装着状態のイベントを待ち受ける、MemoryCardListenerインタフェースを実装したリスナを登録します。 |
setSpeakerStateListener() |
音声出力先変更のイベントを待ち受ける、SpeakerStateListenerインタフェースを実装したリスナを登録します。 |
フィールドの概要 | |
static int |
BACK_LIGHT
setDeviceActive() により状態を設定するデバイスで、バックライトを示します。
|
static int |
BATTERY
getDeviceState() により状態を取得するデバイスで、バッテリーを示します。
|
static int |
EIGHT_DIRECTIONS
setDeviceActive() により状態を設定するデバイスで、8方向キーを示します。
|
static int |
FIELD_INTENSITY
getDeviceState() により取得する状態の種類で、電界強度を示します。
|
static int |
FLIP_CLOSED
getDeviceState() にFLIP_STATEを指定して取得する折りたたみ式機器の開閉状態でフリップが閉じていることを示します。 |
static int |
FLIP_OPENED
getDeviceState() にFLIP_STATEを指定して取得する折りたたみ式機器の開閉状態でフリップが開いていることを示します。 |
static int |
FLIP_STATE
getDeviceState() により取得する状態の種類で、折りたたみ式機器の開閉状態を示します。
|
static int |
KEY_STATE
getDeviceState() により取得する状態の種類で、キーの押下状態を示します。
|
static int |
MEMORY_CARD
getDeviceState() により取得する状態の種類で、メモリカードの装着状態を示します。
|
static int |
MEMORY_CARD_OFF
getDeviceState() にMEMORY_CARDを指定して取得するメモリカードの装着状態で、メモリカードが取り出されていることを示します。
|
static int |
MEMORY_CARD_READ_ONLY
getDeviceState() にMEMORY_CARDを指定して取得するメモリカードの装着状態で、リードオンリーのメモリカードがセットされていることを示します。 |
static int |
MEMORY_CARD_WRITABLE
getDeviceState() にMEMORY_CARDを指定して取得するメモリカードの装着状態で、ライトプロテクトされていないメモリカードがセットされていることを示します。 |
static int |
MEMORY_CARD_WRITE_PROTECTED
getDeviceState() にMEMORY_CARDを指定して取得するメモリカードの装着状態で、ライトプロテクトされたメモリカードがセットされていることを示します。 |
static int |
NEW_ARRIVAL_STATE_CALL
新着状況の種別で音声を示します。 |
static int |
NEW_ARRIVAL_STATE_MAIL
新着状況の種別でメールを示します。 |
static int |
SPEAKER_EXTERNAL
getDeviceState() に SPEAKER_STATE を指定して取得する音声出力先状態で、
TV、ヘッドフォン等の外部出力に出力されていることを示します。 |
static int |
SPEAKER_INTERNAL
getDeviceState() に SPEAKER_STATE を指定して取得する音声出力先状態で、
内蔵スピーカーに出力されていることを示します。 |
static int |
SPEAKER_STATE
getDeviceState() により状態を取得するデバイスで、音声出力先を示します。
|
static int |
VIBRATION
setDeviceActive() により状態を設定するデバイスで、バイブレーション機能を示します。
|
メソッドの概要 | |
void |
blink(int lighting,
int extinction,
int repeat)
バックライトを点滅させます。 |
static DeviceControl |
getDefaultDeviceControl()
唯一のDeviceControlインスタンスを取得します。 |
int |
getDeviceState(int deviceNo)
デバイスの状態を取得します。 |
boolean |
getKeyRepeatState(int key)
キーのオートリピート設定状態を取得します。 |
int |
getLatitude()
現在の緯度を取得します。 |
int |
getLongitude()
現在の経度を取得します。 |
int |
getNewArrivalState()
新着状況(音声着信/メール着信)を取得します。 |
java.lang.String |
getPlaceName()
現在位置の地名を取得します。 |
boolean |
isDeviceActive(int deviceNo)
デバイスが作動しているかどうか調べます。 |
static void |
setBodyOpenListener(BodyOpenListener listener)
折りたたみ式機器の開閉状態のイベントを待ち受けるBodyOpenListenerを登録します。 |
boolean |
setDeviceActive(int deviceNo,
boolean active)
デバイスの作動状態を設定します。 |
boolean |
setKeyRepeatState(int key,
boolean state)
キーのオートリピート設定状態を設定します。 |
static void |
setLocationUpdateListener(LocationUpdateListener listener)
位置情報の更新結果を待ち受けるLocationUpdateListenerを登録します。 |
static void |
setMailListener(MailListener listener)
メール着信を待ち受けるMailListenerを登録します。 |
static void |
setMemoryCardListener(MemoryCardListener listener)
メモリカードの装着状態のイベントを待ち受けるMemoryCardListenerを登録します。 |
static void |
setPhoneStateListener(PhoneStateListener listener)
メールボックス・アドレス帳・データフォルダの変更通知を待ち受けるPhoneStateListenerを登録します。 |
static void |
setRingStateListener(RingStateListener listener)
ユーザーへの着信通知の状態変化を待ち受けるRingStateListenerを登録します。 |
static void |
setScheduledAlarmListener(ScheduledAlarmListener listener)
スケジュールアラーム発生イベントを待ち受けるScheduledAlarmListenerを登録します。 |
static void |
setSpeakerStateListener(SpeakerStateListener listener)
音声出力先変更のイベントを待ち受けるSpeakerStateListenerを登録します。 |
static void |
setTelephonyListener(TelephonyListener listener)
電話の着信イベントを待ち受けるTelephonyListenerを登録します。 |
void |
updateLocationInfo()
位置情報を更新します。 |
クラス java.lang.Object から継承したメソッド |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
public static final int BATTERY
getDeviceState()
により状態を取得するデバイスで、バッテリーを示します。
BATTERYには1が設定されています。public static final int FIELD_INTENSITY
getDeviceState()
により取得する状態の種類で、電界強度を示します。
FIELD_INTENSITYには2が設定されています。public static final int KEY_STATE
getDeviceState()
により取得する状態の種類で、キーの押下状態を示します。
KEY_STATEには3が設定されています。public static final int VIBRATION
setDeviceActive()
により状態を設定するデバイスで、バイブレーション機能を示します。
VIBRATIONには4が設定されています。public static final int BACK_LIGHT
setDeviceActive()
により状態を設定するデバイスで、バックライトを示します。
BACK_LIGHTには5が設定されています。public static final int EIGHT_DIRECTIONS
setDeviceActive()
により状態を設定するデバイスで、8方向キーを示します。
EIGHT_DIRECTIONSには6が設定されています。public static final int FLIP_STATE
getDeviceState()
により取得する状態の種類で、折りたたみ式機器の開閉状態を示します。
FLIP_STATEには7が設定されています。public static final int MEMORY_CARD
getDeviceState()
により取得する状態の種類で、メモリカードの装着状態を示します。
MEMORY_CARDには8が設定されています。public static final int SPEAKER_STATE
getDeviceState()
により状態を取得するデバイスで、音声出力先を示します。
SPEAKER_STATEには9が設定されています。public static final int FLIP_OPENED
getDeviceState()
にFLIP_STATEを指定して取得する折りたたみ式機器の開閉状態でフリップが開いていることを示します。public static final int FLIP_CLOSED
getDeviceState()
にFLIP_STATEを指定して取得する折りたたみ式機器の開閉状態でフリップが閉じていることを示します。public static final int MEMORY_CARD_OFF
getDeviceState()
にMEMORY_CARDを指定して取得するメモリカードの装着状態で、メモリカードが取り出されていることを示します。
メモリカードをサポートしない機器の場合、メモリカードの装着状態は必ずこの値が戻ります。public static final int MEMORY_CARD_WRITABLE
getDeviceState()
にMEMORY_CARDを指定して取得するメモリカードの装着状態で、ライトプロテクトされていないメモリカードがセットされていることを示します。public static final int MEMORY_CARD_WRITE_PROTECTED
getDeviceState()
にMEMORY_CARDを指定して取得するメモリカードの装着状態で、ライトプロテクトされたメモリカードがセットされていることを示します。public static final int MEMORY_CARD_READ_ONLY
getDeviceState()
にMEMORY_CARDを指定して取得するメモリカードの装着状態で、リードオンリーのメモリカードがセットされていることを示します。public static final int NEW_ARRIVAL_STATE_CALL
getNewArrivalState()
により取得する値のビット 0 に 1 が設定されます。public static final int NEW_ARRIVAL_STATE_MAIL
getNewArrivalState()
により取得する値のビット 1 に 1 が設定されます。public static final int SPEAKER_INTERNAL
getDeviceState()
に SPEAKER_STATE
を指定して取得する音声出力先状態で、
内蔵スピーカーに出力されていることを示します。public static final int SPEAKER_EXTERNAL
getDeviceState()
に SPEAKER_STATE
を指定して取得する音声出力先状態で、
TV、ヘッドフォン等の外部出力に出力されていることを示します。メソッドの詳細 |
public static final DeviceControl getDefaultDeviceControl()
public int getDeviceState(int deviceNo)
deviceNo
- デバイス番号として以下のどれかを指定する
BATTERY
FIELD_INTENSITY
FLIP_STATE
FLIP_OPENED
FLIP_CLOSED
MEMORY_CARD
MEMORY_CARD_OFF
MEMORY_CARD_WRITABLE
MEMORY_CARD_WRITE_PROTECTED
MEMORY_CARD_READ_ONLY
KEY_STATE
31 | 16 | 15 | 0 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
センサ左下 | センサ右下 | センサ左上 | センサ右上 | センサ下 | センサ右 | センサ左 | センサ上 | 左下 | 右下 | 左上 | 右上 | ソフトキー3 | ソフトキー2 | ソフトキー1 | 選択キー | 下キー | 右キー | 左キー | 上キー | #キー | *キー | 9キー | 8キー | 7キー | 6キー | 5キー | 4キー | 3キー | 2キー | 1キー | 0キー |
MotionDetectiveSensor.startSensor()
によりモーションコントロールによるキー押下状態の取得が可能になる。
ただし、端末キーとモーションコントロールのキー検出が競合する機器では端末キーが優先される。
MotionDetectiveSensor.KEY_COMPATIBLE
モーションコントロールにより検出されたキー状態は通常のキー押下と同一ビットに設定される。
MotionDetectiveSensor.KEY_SENSOR
モーションコントロールにより検出されたキー状態は通常のキー押下とは異なるビットに設定される。ビット24 - 31 はこの設定時にのみ有効になる。
SPEAKER_STATE
SPEAKER_INTERNAL
またはSPEAKER_EXTERNAL
のいずれかの値を返します。
java.lang.IllegalArgumentException
- デバイス番号にBATTERY、FIELD_INTENSITY、FLIP_STATE、MEMORY_CARD、KEY_STATE以外の値を指定された場合に発生するpublic boolean isDeviceActive(int deviceNo)
deviceNo
- デバイス番号として以下のどれかを指定する
java.lang.IllegalArgumentException
- デバイス番号にVIBRATION、BACK_LIGHT、EIGHT_DIRECTIONS以外の値を指定された場合に発生するpublic boolean setDeviceActive(int deviceNo, boolean active)
deviceNo
- デバイス番号として以下のどれかを指定する
active
- 作動状態。作動させる場合は true 、作動させない場合は false を指定する。java.lang.IllegalArgumentException
- デバイス番号にVIBRATION、BACK_LIGHT、EIGHT_DIRECTIONS以外の値を指定された場合に発生するjava.lang.RuntimeException
- 待ち受けアプリとして動作時に、着信中・スケジュール動作中の場合に発生するpublic void blink(int lighting, int extinction, int repeat)
setDeviceActive()
でバックライトの制御が行われた場合、点滅は停止します。
点灯時間は最大 1000 ミリ秒とします。
lighting
- 点灯時間(単位はミリ秒)extinction
- 消灯時間(単位はミリ秒)repeat
- 繰り返し回数java.lang.IllegalArgumentException
- 点灯時間が負か 1000 より大きい場合、
および消灯時間、繰り返し回数が負の場合に発生するIllegalStateException
- 点滅実行中に呼び出された場合に発生するjava.lang.RuntimeException
- 待ち受けアプリとして動作時に、着信中・スケジュール動作中の場合に発生するpublic boolean setKeyRepeatState(int key, boolean state)
key
- キーコードstate
- 状態(true:ON)public boolean getKeyRepeatState(int key)
key
- キーコードpublic int getLatitude()
SecurityException
- アクセスの制限された Java アプリケーションから呼び出された場合に発生するIllegalStateException
- ネイティブシステムが位置情報を保持していない場合に発生するpublic int getLongitude()
SecurityException
- アクセスの制限された Java アプリケーションから呼び出された場合に発生するIllegalStateException
- ネイティブシステムが位置情報を保持していない場合に発生するpublic java.lang.String getPlaceName()
SecurityException
- アクセスの制限された Java アプリケーションから呼び出された場合に発生するIllegalStateException
- ネイティブシステムが位置情報を保持していない場合に発生するpublic void updateLocationInfo() throws java.lang.RuntimeException
setLocationUpdateListener()
メソッドで登録したリスナに対して通知されます。public int getNewArrivalState()
NEW_ARRIVAL_STATE_CALL
: 0 ビット
NEW_ARRIVAL_STATE_MAIL
: 1 ビット
public static void setMailListener(MailListener listener)
listener
- 新しいMailListenerSecurityException
- アクセスの制限された Java アプリケーションから呼び出された場合に発生するpublic static void setScheduledAlarmListener(ScheduledAlarmListener listener)
listener
- 新しいScheduledAlarmListenerpublic static void setTelephonyListener(TelephonyListener listener)
listener
- 新しいTelephonyListenerSecurityException
- アクセスの制限された Java アプリケーションから呼び出された場合に発生するpublic static void setRingStateListener(RingStateListener listener)
listener
- 新しいRingStateListenerpublic static void setBodyOpenListener(BodyOpenListener listener)
listener
- 新しいBodyOpenListenerpublic static void setLocationUpdateListener(LocationUpdateListener listener)
listener
- 新しいLocationUpdateListenerpublic static void setPhoneStateListener(PhoneStateListener listener)
listener
- 新しいPhoneStateListenerpublic static void setMemoryCardListener(MemoryCardListener listener)
listener
- 新しいMemoryCardListenerpublic static void setSpeakerStateListener(SpeakerStateListener listener)
listener
- 新しい SpeakerStateListener
|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |