Android 如何改变安卓接近传感器的灵敏度?

Android 如何改变安卓接近传感器的灵敏度?,android,sensors,proximity,Android,Sensors,Proximity,我编写了一个基于接近传感器的应用程序,但我希望用户能够更改传感器的灵敏度。 可能吗?如果是,怎么做?我认为这是不可能的。接近传感器由操作系统管理。为了保护用户,没有root访问权限,应用程序无法直接更改操作系统文件。我认为这是不可能的。接近传感器由操作系统管理。为了保护用户,没有根用户访问权限,应用程序无法直接更改操作系统文件。只需“实现SensorEventListener”并遵循以下代码: public void onCallStateChanged(int state, String in

我编写了一个基于接近传感器的应用程序,但我希望用户能够更改传感器的灵敏度。
可能吗?如果是,怎么做?

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

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

只需“实现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;
        }
    }
只需“implements 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;
        }
    }

Android中定义的传感器API将接近度定义为布尔值,即近(1)或远(0)。“灵敏度”指的是接近传感器报告接近的阈值距离

更多的细节

Android(高达v4.1“jelly bean”)没有将邻近距离参数作为其传感器API的一部分公开

您有以下选项:

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

  • 直接与接近传感器驱动器进行交互(通常为系统fs条目)。
    根据使用的光线/接近传感器硬件,
    这可能在少数设备上实现,而在其他设备上则不可能


另外,对于此类“系统级”修改,您肯定会要求Android设备植根。

Android中定义的传感器API将接近度定义为布尔值,即近(1)或远(0)。“灵敏度”指的是接近传感器报告接近的阈值距离

更多的细节

Android(高达v4.1“jelly bean”)没有将邻近距离参数作为其传感器API的一部分公开

您有以下选项:

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

  • 直接与接近传感器驱动器进行交互(通常为系统fs条目)。
    根据使用的光线/接近传感器硬件,
    这可能在少数设备上实现,而在其他设备上则不可能

还有一点是肯定的,那就是安卓设备必须在“系统级”修改中扎根