Android 电子罗盘开发

fuzhangandroid 2011-12-13

Android 上电子罗盘的数据获取非常的简单, 它会返回一个值给我们, 而这个值就是度数。

我们只需要一个成员变量

  Private SensorManager sensorManager;

  该变量管理手机中的传感器信息。


  Public void onCreate(Bundle b)

  {

      //获取系统服务管理

      sensorManager = (SensorManager)getSysytemService(SENSOR_SERVICE);

  }


  这里我们还需要注册一下, 在OnResume重载成员方法中

@Override

  protected void onResume()

  {

    //使用方向传感器

     sensorManager.registerListener(selistener, sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_NOMAL);

     super.onResume();

  }


       @Override

       protectedvoid onPause()

       {

             //卸载传感器事件

              sensor.unregisterListener(selistener);

              super.onPause();

       }


      //传感器消息触发事件

       privatefinal SensorEventListener selistener = new SensorEventListener()

       {

             

              publicvoid onSensorChanged(SensorEvent event)

              {

                     mAngle= event.values[SensorManager.DATA_X];

                     textSensor.setText("角度:" + mAngle);

              }

             

              publicvoid onAccuracyChanged(Sensor sensor, int accuracy)

              {

              }

       };

 

最后再加一个在AndroidManifest.xml 的</application> 下面, 允许程序使用传感器

<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS"/>

相关推荐