完美实现 感应距离让手机自动息屏 防止用户误触界面
private void initSensor() {
mManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
// 获取系统服务POWER_SERVICE,返回一个PowerManager对象
localPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
// 获取PowerManager.WakeLock对象,后面的参数|表示同时传入两个值,最后的是LogCat里用的Tag
localWakeLock = this.localPowerManager.newWakeLock(32, "MyPower"); // 第一个参数为电源锁级别,第二个是日志tag
localWakeLock.setReferenceCounted(false);
}
private void registerSensorListener() {
mManager.registerListener(this, mManager.getDefaultSensor(Sensor.TYPE_PROXIMITY), // 距离感应器
SensorManager.SENSOR_DELAY_NORMAL); // 注册传感器,第一个参数为距离监听器,第二个是传感器类型,第三个是延迟类型
}
private void unregisterSensorListener() {
if (mManager != null) {
if (localWakeLock.isHeld()) {
localWakeLock.release();