我正在将数据从加速计传感器保存到数据库,但是我想在一个单独的线程中进行处理。我试图在Internet上进行搜索,但大多数都使用同一线程。
我尝试过的事情:
SenSorEventListener sel;
Thread A=new Thread(){
public void run()
{
sel=new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
double Acceleration,x,y,z;
x=event.values[0];
y=event.values[2];
z=event.values[2];
Acceleration=Math.sqrt(x*x+y*y+z*z);
db.addAccel(Acceleration);
Log.d("MESSAGE","SAVED");
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
};
}
};
A.start();
try {
A.join();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
sm.registerListener(sel,s,1000000);
}
我使用了SensorEventListener,在新线程中对其进行了初始化,然后在注册侦听器中对其进行了注册。
另一种方法:我使用Runnable接口实现了Accelerometer类,并在Constructor中初始化了所有内容,因此我的run()方法为空,但是这种方法不会创建新的线程。
Accelerometer(Context con,Database d)
{
sm=(SensorManager)con.getSystemService(Context.SENSOR_SERVICE);
s=sm.getSensorList(Sensor.TYPE_ACCELEROMETER).get(0);
sm.registerListener(this,s,1000000);
db=d;
}
void run()
{}
我很乐于尝试另一种方法,或者听到我在上述方法中做错了什么。
首先,您需要使用registerListener(SensorEventListener listener, Sensor sensor, int rate, Handler handler)
并提供Handler
在后台线程上运行的。
创建一个HandlerThread
,获取其Looper
,创建一个Handler
提供弯针。
这将使您在后台线程上接收回调。完成后,请确保删除侦听器,然后调用Looper.quit()
退出线程。
使用coreMotion,实现一个小球在一个框内根据iPhone的倾斜方向和倾角大小以相应的加速度运动。 [Code4App.com]
更新时间:2018-09-17 12:24:57 功能说明 加速度传感器驱动。adxl345 是一款具有数字加速度计功能低功耗传感器,分辨率可以达到13bit,测量范围在16g,通过 I2C 或 SPI 协议进行数据交互. 硬件资源 DevelopKit 上有 I2C 的外扩端口,同时也需要额外的 adxl345 模块,所需的硬件资源如图1所示: 图1 DevelopKit 外扩的 I2C 各个引
更新时间:2018-09-18 10:16:33 功能说明 加速度传感器驱动。MAG3110 是一款低功耗的加速度传感器。 硬件资源 1.DevelopKit 开发板 2.MAG3110 模块 3.接线 MAG3110模块 SCL 引脚接 DevelopKit I2C2的SCL引脚 MAG3110模块 SDA 引脚接 DevelopKit I2C2的SDA引脚 MAG3110模块 VCC引脚接 D
更新时间:2018-09-18 10:15:26 功能说明 加速度传感器的驱动程序 硬件资源 1.DevelopKit 开发板 2.HMC5883 模块 3.接线 HMC5883 模块 SCL 引脚接 DevelopKit I2C2 的 SCL 引脚 HMC5883 模块 SDA 引脚接 DevelopKit I2C2 的 SDA 引脚 HMC5883 模块 VCC 引脚接 DevelopKit
现在一些移动设备配备有加速度传感器,我们可以通过监听它的事件获取各方向的加速度。 可以设想要完成一个游戏情景:通过来回移动手机,平衡小球在手机中的位置。这种场景的完成,就需要监听加速度传感器事件。 使用加速度传感器,需要先启用 Device::setAccelerometerEnabled(true); 创建加速度传感器监听器: // creating an accelerometer even
本文向大家介绍unity3d 读取加速度传感器(精度),包括了unity3d 读取加速度传感器(精度)的使用技巧和注意事项,需要的朋友参考一下 示例 仔细阅读加速度传感器。 本示例分配内存: 这个例子确实没有分配内存: 请注意,这未过滤。请在此处查看如何平滑加速度计值以消除噪声。