注:我将很多AS项目配置都删了,导入项目后有可能gradle插件版本与Android studio不匹配,
记得在build.gradle修改gradle插件版本,与Android studio版本匹配
dependencies {
classpath 'com.android.tools.build:gradle:2.3.1'
}
一般情况,Android studio版本与gradle插件版本一致,
例如Android studio版本2.3,gradle插件版本2.3.0(必须是3位)
Android studio版本2.3.1,gradle插件版本2.3.1
Android studio版本2.3.2,gradle插件版本2.3.2
StepSensorBase.java 计步传感器抽象类,计步公用方法和变量
StepSensorAcceleration.java 加速度传感器实现计步功能
StepSensorPedometer.java 直接使用内置计步传感器实现计步功能
OrientSensor.java 方向功能
public class MainActivity extends AppCompatActivity implements StepSensorBase.StepCallBack, OrientSensor.OrientCallBack {
private TextView mStepText;
private TextView mOrientText;
private StepView mStepView;
private StepSensorBase mStepSensor; // 计步传感器
private OrientSensor mOrientSensor; // 方向传感器
private int mStepLen = 50; // 步长
@Override
public void Step(int stepNum) {
// 计步回调
mStepText.setText("步数:" + stepNum);
mStepView.autoAddPoint(mStepLen);
}
@Override
public void Orient(int orient) {
// 方向回调
mOrientText.setText("方向:" + orient);
// 获取手机转动停止后的方向
// orient = SensorUtil.getInstance().getRotateEndOrient(orient);
mStepView.autoDrawArrow(orient);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SensorUtil.getInstance().printAllSensor(this); // 打印所有可用传感器
setContentView(R.layout.activity_main);
mStepText = (TextView) findViewById(R.id.step_text);
mOrientText = (TextView) findViewById(R.id.orient_text);
mStepView = (StepView) findViewById(R.id.step_surfaceView);
// 注册计步监听
// mStepSensor = new StepSensorPedometer(this, this);
// if (!mStepSensor.registerStep()) {
mStepSensor = new StepSensorAcceleration(this, this);
if (!mStepSensor.registerStep()) {
Toast.makeText(this, "计步功能不可用!", Toast.LENGTH_SHORT).show();
}
// }
// 注册方向监听
mOrientSensor = new OrientSensor(this, this);
if (!mOrientSensor.registerOrient()) {
Toast.makeText(this, "方向功能不可用!", Toast.LENGTH_SHORT).show();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
// 注销传感器监听
mStepSensor.unregisterStep();
mOrientSensor.unregisterOrient();
}
}