2012-02-22 98 views

回答

0

我不認爲這是可能的。接近傳感器由操作系統管理。爲了保護用戶,應用程序無法直接更改os文件,而無需root權限。

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; 
     } 
    } 
0

Android中限定的傳感器API定義的接近度是一個布爾附近即(1)或遠(0)。通過「靈敏度」,我假定您的意思是閾值距離,低於該閾值距離,接近傳感器報告鄰近度爲NEAR。

更多細節的Light/Proximity sensor on Android

Android(upto v4.1「jelly-bean」)不會將接近距離參數暴露爲其傳感器API的一部分。

您有以下選擇:

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

  • 直接與接近傳感器驅動程序(通常是sys-fs條目)交互。
    取決於光線/距離感應器硬件使用,
    這也許可能在一些設備,而不是別人。

此外,人們肯定會要求Android設備根植於這樣的「系統級」修改。