好多天都没日志了,感觉有点过意不去,然后就写这一篇,反正也是为下一次日报做准备,上代码:
package com.main; import android.app.Activity; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.widget.TextView; public class MainActivity extends Activity { private String info = new String(); private TextView textView1; private TextView textView2; private TextView textView3; private TextView textView4; // 感应器管理器 private SensorManager sensorMgr; // 得到加速感应器 Sensor sensor; // 定义各坐标轴上的重力加速度 private float x, y, z; // 创建activity protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViews(); // 得到当前手机传感器管理对象 sensorMgr = (SensorManager) getSystemService(SENSOR_SERVICE); // 加速重力感应对象 sensor = sensorMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); // 实例化一个监听器 SensorEventListener lsn = new SensorEventListener() { // 实现接口的方法 public void onSensorChanged(SensorEvent e) { // 得到各轴上的重力加速度 x = e.values[SensorManager.DATA_X]; y = e.values[SensorManager.DATA_Y]; z = e.values[SensorManager.DATA_Z]; textView1.setText("X:" + x); textView2.setText("Y:" + y); textView3.setText("Z:" + z); info = "X:" + x + "," + "Y:" + y + "," + "Z:" + z; Log.e("信息", info); if (x < 5) { textView4.setText("请保持手机的垂直放置"); }else { if (y > 1) { textView4.setText("目前的方向是向右拐"); }else if(y < -1){ textView4.setText("目前的方向是向左拐"); }else if (y <= 1 && y >= -1) { textView4.setText("目前的方向是直走."); } } } public void onAccuracyChanged(Sensor s, int accuracy) {} }; // 注册listener,第三个参数是检测的精确度 sensorMgr.registerListener(lsn, sensor, SensorManager.SENSOR_DELAY_GAME); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } private void findViews() { textView1 = (TextView)findViewById(R.id.textView1); textView2 = (TextView)findViewById(R.id.textView2); textView3 = (TextView)findViewById(R.id.textView3); textView4 = (TextView)findViewById(R.id.textView4); } }
就是这样,然后你的手机就基本上是一个方向盘了,如果需要发送给某个嵌入式设备,就直接用socket好了,加个线程什么的,也不是很麻烦.就这样了,