我自己的手机是华为荣耀3c的,在调用加速度传感器的时候,根据3个方向的加速度判断,然后如果符合则引发震动等效果代码:
@Override
public void onSensorChanged(SensorEvent event) {
int sensorType = event.sensor.getType();
//values[0]:X轴,values[1]:Y轴,values[2]:Z轴
float[] values = event.values;
if (sensorType == Sensor.TYPE_ACCELEROMETER)
{
if ((Math.abs(values[0]) > 20 || Math.abs(values[1]) > 15 || Math
.abs(values[2]) > 15))
{
FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.home_container, new UserListFragmentII());
transaction.addToBackStack(null);
transaction.commit();
LogUtil.i("============ values[0] = " + values[0]);
LogUtil.i("============ values[1] = " + values[1]);
LogUtil.i("============ values[2] = " + values[2]);
//摇动手机后,再伴随震动提示~~
vibrator.vibrate(500);
}
// LogUtil.i("============ values[0] = " + values[0]);
// LogUtil.i("============ values[1] = " + values[1]);
// LogUtil.i("============ values[2] = " + values[2]);
}
}
结果是,在我自己的手机需要稍微摇一摇,然后换成公司的魅蓝m1之后,不甩都会震动。这是什么情况,我该怎么解决不同手机不同传感器的问题????
@Override
public void onSensorChanged(SensorEvent event) {
int sensorType = event.sensor.getType();
//values[0]:X轴,values[1]:Y轴,values[2]:Z轴
float[] values = event.values;
if (sensorType == Sensor.TYPE_ACCELEROMETER)
{
if ((Math.abs(values[0]) > 20 || Math.abs(values[1]) > 15 || Math
.abs(values[2]) > 15))
{
FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.home_container, new UserListFragmentII());
transaction.addToBackStack(null);
transaction.commit();
LogUtil.i("============ values[0] = " + values[0]);
LogUtil.i("============ values[1] = " + values[1]);
LogUtil.i("============ values[2] = " + values[2]);
//摇动手机后,再伴随震动提示~~
vibrator.vibrate(500);
}
// LogUtil.i("============ values[0] = " + values[0]);
// LogUtil.i("============ values[1] = " + values[1]);
// LogUtil.i("============ values[2] = " + values[2]);
}
}
结果是,在我自己的手机需要稍微摇一摇,然后换成公司的魅蓝m1之后,不甩都会震动。这是什么情况,我该怎么解决不同手机不同传感器的问题????