当前位置: 首页 > 知识库问答 >
问题:

带有传感器数据Android Wear Watchface

巴照
2023-03-14

我可以在Android Studio中使用示例创建一个watch face&我已经创建了一个从传感器中检索数据的应用程序。我不能把这两者结合起来。

我想做的是创建一个Android Wear watchface,它可以显示从手表上的传感器收集到的各种数据。

例如,加速度计始终处于开启状态,以便启用手腕手势。

埃米特

共有1个答案

丁英韶
2023-03-14

好吧,在玩了3天和令人沮丧的错误之后,我已经设法解决了,如果还有人需要解决这个问题:

首先实现SensorEventListener:

private class Engine extends CanvasWatchFaceService.Engine implements SensorEventListener

接下来,在onVisibilityChanged中,我注册了我创建的两个方法:

 @Override
    public void onVisibilityChanged(boolean visible) {
        super.onVisibilityChanged(visible);

        if (visible) {
            registerReceiver();
            registerAccelerometer();

            mTime.clear(TimeZone.getDefault().getID());
            mTime.setToNow();
        } else {
            unregisterReceiver();
            unregisterAccelerometer();
        }
        updateTimer();
    }
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);
    }
@Override
    public void onSensorChanged(SensorEvent sensorEvent) {

        ......
        // Calculate here
        }
        sensorX  = (int)linear_acceleration[0];
        sensorY  = (int)linear_acceleration[1];
        sensorZ  = (int)linear_acceleration[2];
    }

调用onDraw()方法之前,将它们赋给三个变量:

@Override
    public void onDraw(Canvas canvas, Rect bounds) {
        // Get the current Time
        mTime.setToNow();

        // Set the current accelerometer readings.
        accelerometerX.setText("X : " + String.valueOf(sensorX));
        accelerometerY.setText("Y : " + String.valueOf(sensorY));
        accelerometerZ.setText("Z : " + String.valueOf(sensorZ));
        accelerometerRateOfChange.setText("T: " + String.valueOf(totalDisplacement));
    }

理论上,这对所有传感器都应该是一样的,而不仅仅是加速度计。

值得注意的是,我是使用Android Studio的示例应用程序创建的。

 类似资料:
  • 在我的应用程序中,我通过蓝牙接收传感器数据,并希望以高效的方式读取数据。数据流如下所示:

  • 我有以不同频率捕获的传感器数据(这是我为了简化操作而发明的数据)。我想通过增加数据点的数量和插值来重新取样电压数据,这样我就有16个而不是12个。 Pandas具有重采样/上采样功能,但我只能找到人们从每周数据转换为每日数据的示例(通过两个每周数据点之间的插值添加6个每日数据点)。 时间(压力)0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.

  • 1. 按钮被按下? 如果光环板按钮被按下,报告条件成立。 示例: 光环板启动后,如果按钮被按下了,播放LED动画“彩虹”。 2. 麦克风 响度 报告光环板麦克风测得的音量(0-100)。 示例: 光环板启动后,如果麦克风检测到的音量大于50,播放LED动画“彩虹”。 3. 触摸传感器()被触摸? 如果光环板的指定触摸传感器(0、1、2、3)被触摸,报告条件成立。 示例: 光环板启动后,如果触摸传感

  • 科学传感器 四路颜色传感器 新超声波模块 光线传感器 双路颜色传感器 声音传感器 热运动传感器 超声波 测距传感器 运动传感器 土壤湿度传感器 温度传感器 温湿度传感器 MQ2气体传感器 火焰传感器 磁敏传感器 视觉模块

  • 光线传感器 双路颜色传感器 声音传感器 热运动传感器 超声波 测距传感器 运动传感器 土壤湿度传感器 温度传感器 温湿度传感器 MQ2气体传感器 火焰传感器 磁敏传感器 视觉模块

  • 陀螺仪 火焰传感器 气体传感器 光线传感器 巡线传感器 限位开关 人体红外传感器 声音传感器 温湿度传感器 温度传感器 触摸传感器 超声波模块 指南针模块 颜色传感器 RGB巡线模块 音频播放模块