Sensor重力demo

import java.util.List;

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.widget.TextView;

public class SensorActivity extends Activity implements
  SensorEventListener

{
 TextView text;

 private boolean mRegisteredSensor;

 // 定义SensorManager

 private SensorManager mSensorManager;

 /** Called when the activity is first created. */

 @Override
 public void onCreate(Bundle savedInstanceState)

 {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.main);

 text = (TextView) findViewById(R.id.textView1);

  mRegisteredSensor = false;

  // 取得SensorManager实例

  mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);

 }

 @Override
 protected void onResume()

 {
  super.onResume();
  // 接受SensorManager的一个列表(Listener)
  // 这里我们指定类型为TYPE_ORIENTATION(方向感应器)或YPE_ACCELEROMETER
  List<Sensor> sensors = mSensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER);
  if (sensors.size() > 0)
  {
   Sensor sensor = sensors.get(0);
   // 注册SensorManager
   // this->接收sensor的实例
   // 接收传感器类型的列表
   // 接受的频率
   mRegisteredSensor = mSensorManager.registerListener(this, sensor,
     SensorManager.SENSOR_DELAY_NORMAL);
  }
 }

 @Override
 protected void onPause()

 {

  if (mRegisteredSensor)

  {

   // 如果调用了registerListener

   // 这里我们需要unregisterListener来卸载\取消注册

   mSensorManager.unregisterListener(this);

   mRegisteredSensor = false;

  }

  super.onPause();

 }

 // 当进准度发生改变时

 // sensor->传感器

 // accuracy->精准度

 @Override
 public void onAccuracyChanged(Sensor sensor, int accuracy)

 {

 }

 // 当传感器在被改变时触发

 @Override
 public void onSensorChanged(SensorEvent event)

 {

  // 接受方向感应器的类型

  synchronized (this) {
   if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER)// ///或
                 // TYPE_ORIENTATION

   {

    // 这里我们可以得到数据,然后根据需要来处理

    // 由于模拟器上面无法测试效果,因此我们暂时不处理数据

    float x = event.values[SensorManager.DATA_X];

    float y = event.values[SensorManager.DATA_Y];

    float z = event.values[SensorManager.DATA_Z];

    Log.d("TESTSENSOR", x + " " + y + " " + z);
    text.setText("TESTSENSOR"+x + " " + y + " " + z);
   }

  }

 }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值