【发布时间】:2018-05-24 15:58:54
【问题描述】:
我是 Java 新手。下面,我实现了以下代码:
package com.epson.moverio.sample.TapSample;
import android.app.Activity;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.Toast;
import com.example.username.internprojectcv.R;
public class MainActivity extends Activity implements SensorEventListener {
static int TYPE_HEADSET_TAP = 0x00002001;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SensorManager sm = (SensorManager) getSystemService(SENSOR_SERVICE);
Sensor sensor = sm.getDefaultSensor(Sensor.TYPE_HEADSET_TAP);
sm.registerListener(this, sensor, SensorManager.SENSOR_DELAY_NORMAL);
}
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_HEADSET_TAP) {
//if tap event occurs, show Toast
Toast.makeText(this, "tap event!", Toast.LENGTH_SHORT).show();
}
}
@Override
protected void onPause() {
super.onPause();
SensorManager sm = (SensorManager) getSystemService(SENSOR_SERVICE);
if (sm != null) {
sm.unregisterListener(this);
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
}
我收到编译器错误“找不到符号变量 TYPE_HEADSET_TAP”。有什么办法可以解决这个错误?
【问题讨论】:
-
您是要使用
MainActivity.TYPE_HEADSET_TAP还是只使用TYPE_HEADSET_TAP而不是Sensor.TYPE_HEADSET_TAP?