電話の状態が変化するブロードキャストレシーバーがあり、電話の状態が「OFFHOOK」の場合、近接センサーのイベントリスナーを登録します。近接性が変化すると、私は何かをします(サービスで登録と「何か」を行います)。これまでのところ、すべてが期待どおりに機能しています。問題は、近接値が「CLOSE」のときに画面がロックされないことです。これは、リスナーが近接変更イベントをキャッチしているため、電話のデフォルト アプリケーションがイベントを取得していないためだと思います。ボタンの onClickListener() で「false を返す」など、イベントを渡す方法はありますか。
編集:
コード
サービスの作成中
myProximitySensor = mySensorManager
.getDefaultSensor(Sensor.TYPE_PROXIMITY);
mySensorManager.registerListener(this, myProximitySensor,
SensorManager.SENSOR_DELAY_NORMAL);
SensorEventListener を実装しました。その中に onSensorChanged() メソッドがあります。
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audioManager.setSpeakerphoneOn(true);