0
点赞
收藏
分享

微信扫一扫

android 传感器使用与开发---温度传感器



类型:Sensor.TYPE_PROXIMITY


距离感应器,可以感应手机和人体距离


用途:在靠近手机屏幕 某个距离时,发生某事。


比如:点亮或者熄灭屏幕;启动听筒。有时可实现复杂操作,屏幕上方操作屏幕等等。


Code  :  


/*    根据距离感应器改变AudioManager播放模式  

 public class MainActivity extends Activity implements SensorEventListener {
  private AudioManager audioManager;
  private SensorManager mSensorManager;
  private Sensor mSensor;  @Override
  protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
   init();
  }  private void init() {
   audioManager = (AudioManager) this
     .getSystemService(Context.AUDIO_SERVICE);
   mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
   mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);

   MediaPlayer mPlayer = new MediaPlayer();
   try {
    mPlayer.reset();
    mPlayer.setDataSource(new FileInputStream("/sdcard/snow.mp3").getFD());
    mPlayer.prepare();
    mPlayer.start();
   } catch (IllegalArgumentException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   } catch (SecurityException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   } catch (IllegalStateException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }  @Override
  protected void onResume() {
   mSensorManager.registerListener(this, mSensor,
     SensorManager.SENSOR_DELAY_NORMAL);
   super.onResume();
  }  @Override
  protected void onPause() {
   // TODO Auto-generated method stub
   mSensorManager.unregisterListener(this);
   super.onPause();
  }  @Override
  public void onSensorChanged(SensorEvent event) {
   // TODO Auto-generated method stub
   float range = event.values[0];   if (range == mSensor.getMaximumRange()) {
    Toast.makeText(this, "正常模式", Toast.LENGTH_LONG).show();
     audioManager.setMode(AudioManager.MODE_NORMAL);
   } else {
    Toast.makeText(this, "听筒模式", Toast.LENGTH_LONG).show();
     audioManager.setMode(AudioManager.MODE_IN_CALL);
   }
  }  @Override
  public void onAccuracyChanged(Sensor sensor, int accuracy) {
   // TODO Auto-generated method stub  }
 }

举报

相关推荐

0 条评论