对缺乏代码示例表示歉意,但到目前为止我所尝试的任何内容都是完全混乱的。
我尝试在网上搜索信息,也许我没有搜索正确的字词。
我可以使用Android Studio& amp;中的样本创建表盘。我创建了一个从传感器中检索数据的应用程序。我无法做到的是将两者结合起来。
我要做的是创建一个Android Wear表盘,可以显示从手表上的传感器收集的各种数据。
例如,加速度计始终打开以启用手腕手势。
任何人都可以指出我正确的方向,如何解决这个问题,而不是发布到Android API的链接,因为我已经筋疲力尽了。
问候,
埃米特
答案 0 :(得分:4)
好的,所以经过3天的游戏和令人沮丧的错误之后,如果有其他人需要解决这个问题,我已经设法解决了这个问题:
首先实现SensorEventListener:
{ "moderator": 469 }
{ "superadmin": 1 }
{ "user": 2238 }
{ "admin": 11 }
接下来,在onVisibilityChanged中,我注册了两个我创建的方法:
private class Engine extends CanvasWatchFaceService.Engine implements SensorEventListener
这两种方法:
@Override
public void onVisibilityChanged(boolean visible) {
super.onVisibilityChanged(visible);
if (visible) {
registerReceiver();
registerAccelerometer();
mTime.clear(TimeZone.getDefault().getID());
mTime.setToNow();
} else {
unregisterReceiver();
unregisterAccelerometer();
}
updateTimer();
}
然后,在onSensorChanged中,我在那里听加速度计的变化:
private void registerAccelerometer() {
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
sensorManager.registerListener(this,
sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_NORMAL);
}
private void unregisterAccelerometer() {
sensorManager.unregisterListener(this);
}
在调用onDraw()方法之前,将这些变量分配给三个变量:
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
......
// Calculate here
}
sensorX = (int)linear_acceleration[0];
sensorY = (int)linear_acceleration[1];
sensorZ = (int)linear_acceleration[2];
}
理论上,对于所有传感器而言,这应该是相同的,而不仅仅是加速度计。
值得注意的是,我是使用Android Studio的示例应用创建的。