如何启用机器人接近传感器 [英] How to enable proximity sensor in android

查看:184
本文介绍了如何启用机器人接近传感器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在code配置成功着陆高度表。现在,我想转断&在屏幕上编程。传感器的code的工作就好了下面的方法也越来越被调用。

I have configured proximeter successfully in my code. Now I want to turn off & on screen programmatically. Code of sensor is working just fine and following method is also getting called.

@Override
public void onSensorChanged(SensorEvent event) {
    // TODO Auto-generated method stub

    PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
    WakeLock screenWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,"screenWakeLock");

    if (event.values[0] == 0) {
        screenWakeLock.acquire();
        Log.e("onSensorChanged","NEAR");
    } else {
        if (screenWakeLock != null) {
               if(screenWakeLock.isHeld())
                  screenWakeLock.release();
               screenWakeLock = null;
        }
        Log.e("onSensorChanged","FAR");  
    }
} 

我的问题是,屏幕是没有得到关闭。我也开始加入在code所需的权限。还有什么可能是原因???

My problem is that screen is not getting turn off. I also have added required permission in code. What else could be the reason ???

推荐答案

由于从我的理解 wakelock 是有用的,以保持屏幕上。我没有成功打开屏幕和放大器;关闭使用它。

As from my understanding wakelock is useful to keep screen on. I wasn't successful to turn screen on & off using it.

所以,首先我调暗屏幕亮度尽可能低的水平,然后作出一切GUI元素不可点击。这样,我解决我的问题。

So, first I dimmed screen brightness as low as possible and then made all GUI elements unclickable. This way I solved my problem.

以下是方法:

@Override
public void onSensorChanged(SensorEvent event) {
    // TODO Auto-generated method stub  
    WindowManager.LayoutParams params = this.getWindow().getAttributes();

    if (event.values[0] == 0) {
        //TODO Store original brightness value
        params.screenBrightness = 0.004f;
        this.getWindow().setAttributes(params);
        enableDisableViewGroup((ViewGroup)findViewById(R.id.YOUR_MAIN_LAYOUT).getParent(),false);
        Log.e("onSensorChanged","NEAR");

    } else {
        //TODO Store original brightness value          
        params.screenBrightness = -1.0f;
        this.getWindow().setAttributes(params);                     
        enableDisableViewGroup((ViewGroup)findViewById(R.id.YOUR_MAIN_LAYOUT).getParent(),true);
        Log.e("onSensorChanged","FAR");  
    }       
}  

从这里,我参考了禁用触控对于整个屏幕的看法。

From here, I took reference to disable touch for entire screen's view.

这篇关于如何启用机器人接近传感器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆