Android 接近传感器实现判断接听电话
2013-08-12 15:16
525 查看
1)接近传感器检测物体与听筒(手机)的距离,单位是厘米。
一些接近传感器只能返回远和近两个状态,如我的手机小米2S只能识别到两个距离:0CM(近距离)和5CM(远距离)
因此,接近传感器将最大距离返回远状态,小于最大距离返回近状态。
接近传感器可用于接听电话时自动关闭LCD屏幕以节省电量。
一些芯片集成了接近传感器和光线传感器两者功能。
2)具体代码如下
一些接近传感器只能返回远和近两个状态,如我的手机小米2S只能识别到两个距离:0CM(近距离)和5CM(远距离)
因此,接近传感器将最大距离返回远状态,小于最大距离返回近状态。
接近传感器可用于接听电话时自动关闭LCD屏幕以节省电量。
一些芯片集成了接近传感器和光线传感器两者功能。
2)具体代码如下
package com.example.androidapp; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity { private SensorManager mSensorManager=null; private Sensor mSensor=null; private TextView textView1=null; private Button button1=null; private Button button2=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView1=(TextView)findViewById(R.id.textView1); /*获取系统服务(SENSOR_SERVICE)返回一个SensorManager对象*/ mSensorManager=(SensorManager)getSystemService(SENSOR_SERVICE); /*通过SensorManager获取相应的(接近传感器)Sensor类型对象*/ mSensor=mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY); /*注册相应的SensorService*/ button1=(Button)findViewById(R.id.button1); button1.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View arg0) { mSensorManager.registerListener(mSensorEventListener, mSensor , SensorManager.SENSOR_DELAY_NORMAL); } }); /* 销毁相应的SensorService * 很关键的部分,注意,说明文档中提到,即使Activity不可见的时候,感应器依然会继续工作 * 所以一定要关闭触发器,否则将消耗用户大量电量*/ button2=(Button)findViewById(R.id.button2); button2.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { mSensorManager.unregisterListener(mSensorEventListener, mSensor); } }); } /*声明一个SensorEventListener对象用于侦听Sensor事件,并重载onSensorChanged方法*/ private final SensorEventListener mSensorEventListener=new SensorEventListener() { @Override public void onSensorChanged(SensorEvent event) { if(event.sensor.getType()==Sensor.TYPE_PROXIMITY){ /*接近传感器检测物体与听筒的距离,单位是厘米。*/ float distance=event.values[0]; textView1.setText(String.valueOf(distance)+"cm"); } } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { // TODO Auto-generated method stub } }; @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
相关文章推荐
- Android 如何判断拨打电话对方是否接听
- Android 电话的反射调用机制实现自动接听电话
- Android自动接听和挂断电话实现原理
- Android 实现自动接听和挂断电话功能
- Android 实现自动接听和挂断电话功能
- Android自动接听和挂断电话实现原理
- [置顶] Android-实现电话自动接听/电话自动挂断功能
- [Android]Android5.0实现静默接听电话功能
- Android 电话的反射调用机制实现静默接听电话
- android实现 5.0 6.0手机自动接听电话功能
- Android开发之实现自动接听电话(绝…
- Android 电话的反射调用机制实现静默接听电话
- [Android]Android5.0实现静默接听电话功能
- Android 电话的反射调用机制实现静默接听电话
- android 4.0以上系统如何实现自动接听电话
- Android 如何判断拨打电话对方是否接听
- Android--通过AIDL+反射,调用android内部隐藏的服务实现挂断电话
- Android判断SD卡是否存在的实现
- RxJava(十)switchIfEmpty操作符实现Android检查本地缓存逻辑判断
- android实现拨打电话