我有一个非常简单的手表应用程序,试图检测运动:
package com.example.watchapp;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.hardware.TriggerEvent;
import android.hardware.TriggerEventListener;
import android.os.Bundle;
import android.util.Log;
import java.util.List;
public class MainActivity extends AppCompatActivity implements SensorEventListener {
private static final String TAG = "CUSTOM_TAG";
private SensorManager sensorManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
List<Sensor> deviceSensors = sensorManager.getSensorList(Sensor.TYPE_ALL);
for (Sensor deviceSensor : deviceSensors) {
System.out.println("sensor : " + deviceSensor.getName());
}
setContentView(R.layout.activity_main);
}
@Override
public final void onSensorChanged(SensorEvent event) {
int sensorType = event.sensor.getType();
switch (sensorType) {
case Sensor.TYPE_ACCELEROMETER:
float valueX = event.values[0];
float valueY = event.values[1];
float valueZ = event.values[2];
System.out.println("Sensor Changed value:");
Log.d(TAG, "Sensor Changed value:" + valueX + ":" + valueY + ":" + valueZ);
break;
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
}
使用模拟器模拟手机上的移动:
这个
onSensorChanged
事件似乎不会被触发,因为“Sensor Changed value:”不会打印到Android Studio控制台。是否有一个可穿戴应用程序的特定模拟器,我应该用它来模拟手表应用程序上的移动?或者我没有正确地编写应用程序?