我想根据用户旋转来获取和移动坐标上的针,或者像指南针一样移动设备,因为这个应用程序已经在做。你可以在这个链接上看到我想说的https://play.google.com/ store/apps/details?id=com.plaincode.clinometer&hl=en但现在我无法理解这种情况。我无法找到如何开始的提示..他们是否有任何 api 来获取并使其工作,或者需要在非常广泛的层面上实现加速度计才能完成它。如果您有任何关于此的代码或链接,请指导我..提前谢谢
问问题
1637 次
2 回答
0
一年多前,我一直在寻找这个解决方案,为此我设法以类似的方式做到了这一点。我设法做的事情的来源是——链接到来源
于 2013-12-16T06:05:47.170 回答
0
您应该开始创建一个实现 SensorEventListener 的活动,包括以下两个方法:
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
// add your code
// event.values[] contains the 3 accelerometer values
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int i) {
// add your code
}
作为第二步,从在 Activity 中实现加速度计开始:
private SensorManager mSensorManager;
private Sensor mRotationSensor;
mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
然后在上面注册一个传感器监听器(你可以在 onResume 中做):
mSensorManager.registerListener(this, mRotationSensor, 16000);
// 16000 microseconds
并取消注册(在 onPause 中):
mSensorManager.unregisterListener(this);
请注意,如果您想要非常准确地测量 3 维的角度和斜率,您应该执行板载加速度计的校准程序,通常需要对增益、偏移和角度进行少量补偿。
您可以在免费和开源的 BasicAirData Clinometer 上阅读 Accelerometers 的简单但完整的用法:https ://github.com/BasicAirData/Clinometer
该应用程序还包括一个校准程序。
于 2021-08-31T12:05:08.813 回答