Skip to content

Instantly share code, notes, and snippets.

@sakurabird
Created October 24, 2011 13:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sakurabird/1309012 to your computer and use it in GitHub Desktop.
Save sakurabird/1309012 to your computer and use it in GitHub Desktop.
Untouchable 近接センサー
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