私が達成したいのは、メソッドで正しい結果セットを返すことisClose
です。問題は、isClose
メソッドがトリガーされるのを待機しておらず、フィールドonSensorChanged
のデフォルトの「0」値を返すことです。isClose
私は自分のPositionクラスを次のように呼び出します。
Position mPosition = new Position();
boolean result = mPosition.isInPocket(this);
ポジションクラス:
public class Position implements SensorEventListener {
private SensorManager mSensorManager;
private Sensor mProximity;
private boolean isClose;
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
public void onSensorChanged(SensorEvent event) {
float[] value = event.values;
if(value[0] > 0) {
isClose = false;
} else
{
isClose = true;
}
}
public boolean isClose(Context context) {
mSensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
mProximity = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
mSensorManager.registerListener(this, mProximity, 0);
return isClose; // I'd like to return this with value set in onSensorChanged.
}
}