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

问题描述:

我编写的应用程序基于接近传感器,但我希望能够给用户的能力,更改传感器的灵敏度。 这可能吗?如果是的话该怎么办?如何更改Android接近传感器的灵敏度?

我不认为这是可能的。接近传感器由操作系统管理。为了保护用户,应用程序无法直接更改os文件,而无需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; 
     } 
    } 

Android中限定的传感器API定义的接近度是一个布尔附近即(1)或远(0)。通过“灵敏度”,我假定您的意思是阈值距离,低于该阈值距离,接近传感器报告邻近度为NEAR。

更多细节的Light/Proximity sensor on Android

Android(upto v4.1“jelly-bean”)不会将接近距离参数暴露为其传感器API的一部分。

您有以下选择:

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

  • 直接与接近传感器驱动程序(通常是sys-fs条目)交互。
    取决于光线/距离感应器硬件使用,
    这也许可能在一些设备,而不是别人。

此外,人们肯定会要求Android设备根植于这样的“系统级”修改。