【问题标题】:Using proximity sensor with onSensorChanged使用带有 onSensorChanged 的​​接近传感器
【发布时间】:2015-08-30 11:28:54
【问题描述】:

我正在使用接近传感器来增加TextView 中的一个数字,它可以工作,但它是以两个为增量触发的,即0 2 4 6 8。我想增加一,可以吗?

TextView text ;
SensorManager sm ;
Sensor Proxsens;
int i=0 ;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    text =(TextView)findViewById(R.id.text_id);
    sm = (SensorManager)getSystemService(SENSOR_SERVICE);
    Proxsens = sm.getDefaultSensor(Sensor.TYPE_PROXIMITY);

    sm.registerListener(this,Proxsens,SensorManager.SENSOR_DELAY_NORMAL);

}

@Override
public void onSensorChanged(SensorEvent event) {

    text.setText(String.valueOf(i));
    i++;
//  text.setText(String.valueOf(event.values[0]));
}

@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {

}

【问题讨论】:

  • 没有“解决方案”,这样做是因为onSensorChanged 连续调用两次,因为系统连续计算了 2 次更改。您可以仔细检查此行为,但在回调中放置 Log.d(... 行。如果您仍然希望TextView 更改得更慢,可以使用几种不同的去抖动技术。谷歌一下。

标签: android proximity proximitysensor


【解决方案1】:
@Override
public void onSensorChanged(SensorEvent event){
    if (event.values[0] == 0) {
        text.setText(String.valueOf(i));
        i++;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-09
    • 2017-04-27
    • 2013-11-08
    相关资源
    最近更新 更多