0
我想檢測,如果我的智能手機用戶左轉或右轉或轉身。Android檢測從手機轉向
這裏一個例子來解釋「右轉」:
用戶面對一個十字路口。現在我想檢測我的用戶是正確的路徑還是左邊的路徑,或者直接進入。
所以我用這個來獲得方位:
@Override
public void onSensorChanged(SensorEvent event) {
switch (event.sensor.getType()) {
case Sensor.TYPE_ACCELEROMETER:
for (int i = 0; i < 3; i++) {
valuesAccelerometer[i] = event.values[i];
}
break;
case Sensor.TYPE_MAGNETIC_FIELD:
for (int i = 0; i < 3; i++) {
valuesMagneticField[i] = event.values[i];
}
break;
}
boolean success = SensorManager.getRotationMatrix(matrixR, matrixI,
valuesAccelerometer, valuesMagneticField);
if (success) {
SensorManager.getOrientation(matrixR, matrixValues);
Math.round(Math.toDegrees(Math.acos(matrixValues[0])));
azimuth = (float) Math.round(Math.toDegrees(matrixValues[0]));
if (azimuth < 0.0f) {
azimuth += 360.0f;
}
}
這工作得很好。但現在我不知道如何設置開始和我旋轉的終點......
如果需要檢測的改變,你需要獲得和存儲感興趣的參數(即角度)的初始值並且將其與當前值進行比較。沒有關於你想要檢測的更多細節,我不能更具體。 「用戶向右轉」並沒有太多的定義。 – amoiseyev
我添加一個例子來解釋它更好! – JavaNullPointer
這不是一個很好的例子。多少學位構成「右轉」?是否應該在一定的時間範圍內,或者是否應該將一個緩慢而微妙的漂移轉化爲一個轉折?如果用戶將手機放在手中,會發生什麼?等等... – Geobits