1

I coded an app based on proximity sensor, but I would like to be able to give users the ability to change the sensitivity of the sensor. Is it possible? If yes how to do it?

4

3 回答 3

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;
        }
    }
于 2012-05-22T09:09:57.370 回答
0

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

于 2012-02-22T21:39:02.890 回答
0

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

Android 上的光/接近传感器的更多详细信息。

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

您有以下选择:

  • 修改 sensor-HAL以向接近传感器添加可配置的阈值。

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

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

于 2012-07-27T07:35:28.010 回答