|
请教各位,我现在在做Android手机重力感应。调用手机加速度传感器。得到加速度传感器,注册传感器监听,然后建立socket连接,获得输入输出流。然后就对手机三个方向上的加速度 进行处理。部分关键代码如下:
float x=event.values[SensorManager.DATA_X];
float y=event.values[SensorManager.DATA_Y];
float z=event.values[SensorManager.DATA_Z];
if(x<-2)
{
mPrintWriter.print("f");//前进
mPrintWriter.flush();
}
else if(x>7)
{
mPrintWriter.print("b");//后退
mPrintWriter.flush();
}
else if(y<-1)
{
mPrintWriter.print("l");//左转
mPrintWriter.flush();
}
else if(y>1)
{
mPrintWriter.print("r");
mPrintWriter.flush(); //右
}
else
{
mPrintWriter.print("0");//停止
mPrintWriter.flush();
}
这样处理手机可以 发送字符,但是我通过串口调试助手来检验时,发现手机会持续发送某一个字符,比如一直将手机平放,手机会连续发送很多字符“0”,这不仅很占用资源,而且会影响重力感应时其他字符的发送,并不是我预期想要的结果。我是想比如将手机向前倾,会只发送一个字符“f”。
所以我想请教各位,怎样才能实现每次只发一个字符??
万分感谢
|
|