如何更改Android接近传感器灵敏度?

时间:2012-02-22 21:30:14

标签: android sensor proximity

我根据接近传感器对应用进行了编码,但我希望能够让用户能够更改传感器的灵敏度。 可能吗?如果是的话怎么做?

3 个答案:

答案 0 :(得分:1)

只需“实现SensorEventListener”并遵循以下代码:

public void onCallStateChanged(int state, String incomingNumber) {
        switch (state) {
        case TelephonyManager.CALL_STATE_IDLE:
            System.out.println("My Call IDLE");
            CallState = false;
            StartAudioSpeacker();
            System.out.println("Is phone speaker : "+ audioManager.isSpeakerphoneOn());
            if (audioManager.isSpeakerphoneOn()) {
                audioManager.setSpeakerphoneOn(false);
                mSensorManager.unregisterListener(this);
            }
            break;
        case TelephonyManager.CALL_STATE_OFFHOOK:
            System.out.println("My Call OFFHOOK");
            CallState = true;
            StartAudioSpeacker();
            System.out.println("Is phone speaker : "+ audioManager.isSpeakerphoneOn());
            break;
        case TelephonyManager.CALL_STATE_RINGING:
            System.out.println("My Call RINGING");
            break;
        }
    }

答案 1 :(得分:0)

我不认为这是可能的。接近传感器由操作系统管理。为了保护用户,应用程序无法在没有root访问权限的情况下直接更改os文件。

答案 2 :(得分:0)

Android中定义的传感器API将接近度定义为布尔值,即NEAR(1)或FAR(0)。通过“灵敏度”,我认为你的意思是接近传感器报告接近的阈值距离为NEAR。

Light/Proximity sensor on Android的更多细节。

Android(最高v4.1“jelly-bean”)不会将接近距离参数作为其传感器API的一部分公开

您有以下选择:

  • 修改传感器-HAL ,为接近传感器添加可配置的阈值。

  • 直接与接近传感器驱动程序进行交互(通常是sys-fs条目)。
    根据使用的灯/接近传感器硬件,
    这可能在少数设备上而不是在其他设备上实现。

另外一个肯定会要求Android设备植根于这种“系统级”修改。