1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
package com.hand.face.utils;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
/**
* Created by xiang.wang on 2016/12/9.
* 加速传感器
*/
public class Accelerometer {
private SensorManager a = null;
private boolean b = false;
private static CLOCKWISE_ANGLE c;
private SensorEventListener d = new SensorEventListener() {
public void onAccuracyChanged(Sensor var1, int var2) {
}
public void onSensorChanged(SensorEvent var1) {
if(var1.sensor.getType() == 1) {
float var2 = var1.values[0];
float var3 = var1.values[1];
float var4 = var1.values[2];
if(Math.abs(var2) > 3.0F || Math.abs(var3) > 3.0F) {
if(Math.abs(var2) > Math.abs(var3)) {
if(var2 > 0.0F) {
Accelerometer.c = CLOCKWISE_ANGLE.Deg0;
} else {
Accelerometer.c = CLOCKWISE_ANGLE.Deg180;
}
} else if(var3 > 0.0F) {
Accelerometer.c = CLOCKWISE_ANGLE.Deg90;
} else {
Accelerometer.c = CLOCKWISE_ANGLE.Deg270;
}
}
}
}
};
public Accelerometer(Context var1) {
this.a = (SensorManager)var1.getSystemService("sensor");
c = CLOCKWISE_ANGLE.Deg0;
}
public void start() {
if(!this.b) {
this.b = true;
c = CLOCKWISE_ANGLE.Deg0;
this.a.registerListener(this.d, this.a.getDefaultSensor(1), 3);
}
}
public void stop() {
if(this.b) {
this.b = false;
this.a.unregisterListener(this.d);
}
}
public static int getDirection() {
return c.getValue();
}
public static enum CLOCKWISE_ANGLE {
Deg0(0),
Deg90(1),
Deg180(2),
Deg270(3);
private int value;
private CLOCKWISE_ANGLE(int var3) {
this.value = var3;
}
public int getValue() {
return this.value;
}
}
}