Created
October 24, 2011 13:20
-
-
Save sakurabird/1309012 to your computer and use it in GitHub Desktop.
Untouchable 近接センサー
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SensorManager sensorMgr; | |
booleanhasSensor; | |
//センサーマネージャの取得 | |
sensorMgr = ( SensorManager ) getSystemService( SENSOR_SERVICE ); | |
hasSensor = false; | |
//センサマネージャへリスナーを登録 | |
//ここのTYPE_PROXIMITYというところを置き換えることで、様々なセンサの値が取得可能 | |
List< Sensor > sensors = sensorMgr.getSensorList( Sensor.TYPE_PROXIMITY ); | |
if ( sensors.size() > 0 ) { | |
// センサーリスナー開始 | |
Sensor sensor = sensors.get( 0 ); | |
hasSensor = sensorMgr.registerListener( this, sensor, SensorManager.SENSOR_DELAY_NORMAL ); | |
} else { | |
// 近接センサーがついていないので、Toastでメッセージを出し、アプリを終了 | |
Toast.makeText( UntouchableTimerActivity.this, getResources().getText( R.string.message_error_no_sensor ), Toast.LENGTH_SHORT ).show(); | |
finish(); | |
} | |
//センサー値の取得 | |
@Override | |
// センサーを感知した時 | |
publicvoid onSensorChanged( SensorEvent event ) { | |
//センサーのタイプを取得して近接センサー(TYPE_PROXIMITY)の場合処理を行います | |
if ( event.sensor.getType() == Sensor.TYPE_PROXIMITY ) { | |
// プリファレンスに設定されたセンサー感度以下の場合、近接センサー反応したとみなす | |
if ( event.values[ 0 ] < pref_Sensor_Sensitivity ) { | |
// 画面メッセージ | |
tv_sensor_message.setText( R.string.message_wait_sensor_changed ); | |
// 音を出す | |
sensorcatch.start(); | |
// 音が鳴り終わるのを待って次の処理に行く。 | |
sensorcatch.setOnCompletionListener( new OnCompletionListener() { | |
publicvoid onCompletion( MediaPlayer mp ) { | |
// 音声認識スタート | |
startSpeechRecognizer(); | |
} | |
} ); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment