近接センサーの値を追跡するアプリケーションを作成しようとしているときに問題が発生しました。アプリケーションの目的は、定期的な間隔 (たとえば 30 秒) で瞬間的な近接値を記録することです。
API ドキュメントに従って、標準リスナーが作成され、そのタイプのセンサーにアタッチされます。ただし、センサーを手で覆っている場合でも、値は常に「5.0」(5cm、センサーの最大値) として報告されます。
ただし、別のアプリケーション (近接センサーの値も監視する) を起動すると、両方のアプリケーションが近接を正しく報告し始めます。他のアプリケーション ( Android Sensor Box )を閉じると、アプリケーションは常に 5.0 を報告するだけに戻ります。
アプリケーションをデバッグし、「onSensorChanged」イベントにブレークポイントを設定して、 onSensorChangedメソッドに渡されるSensorEventオブジェクトを再確認しました。常に 5.0です。
編集 #2: 近接センサーに限定されているようには見えません。ジャイロスコープ センサーは同じように動作しますが、加速度計と磁力計は正確で最新の値を示しているように見えます。4 つすべてが同じ方法で参照およびアクセスされます。
何か案は?