2012-02-07 2 views
0

광 센서를 사용하여 간단한 Android 앱을 개발하려고합니다. 불행히도 내 SE Xperia Arc S에는 광 센서가 있어도 작동시키지 못합니다. 아래의 간단한 코드는 null을 반환합니다. 나는 Service Test에서 * # * # 7378423 # * # * 및 Service Test -> Ambient Light Sensor를 사용하여 광 센서를 점검하고있었습니다.Xperia Arc S 광 센서

돌아 널 (null) :

sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 
return mySensorManager.getDefaultSensor(Sensor.TYPE_LIGHT); 

이 코드는 광 센서 누락, 센서의 목록을 반환합니다 : 나는 시장에서 광 센서 애플리케이션을 검사 한

mySensorManager.getSensorList(Sensor.TYPE_ALL); 

이 중 하나가 작동하지 않습니다.

전화 정보 :

LT18i, 안드로이드 버전 : 2.3.4, 편집 : 4.0.2.A.0.42

어떤 아이디어?

도움 주셔서 감사합니다.

답변

0

Camera.Parameters.FLASH_MODE_TORCH replacement for Android 2.1

확인 위의 링크. 아크 S에서 테스트 할 때 사용했습니다.

Xperia Arc S에서 센서 API가 광 센서를 지원하지 않습니다. 카메라 API를 사용하여 광 센서에 액세스해야합니다. 다음 코드를 사용할 수 있습니다.

/*** 
* Attempts to set camera flash torch/flashlight mode on/off 
* @param isOn true = on, false = off 
* @return boolean whether or not we were able to set it 
*/ 
public boolean setFlashlight(boolean isOn) 
{ 
    if (mCamera == null) 
    { 
     return false; 
    } 
    Camera.Parameters params = mCamera.getParameters(); 
    String value; 
    if (isOn) // we are being ask to turn it on 
    { 
     value = Camera.Parameters.FLASH_MODE_TORCH; 
    } 
    else // we are being asked to turn it off 
    { 
     value = Camera.Parameters.FLASH_MODE_AUTO; 
    } 

    try{  
     params.setFlashMode(value); 
     mCamera.setParameters(params); 

     String nowMode = mCamera.getParameters().getFlashMode(); 

     if (isOn && nowMode.equals(Camera.Parameters.FLASH_MODE_TORCH)) 
     { 
      return true; 
     } 
     if (! isOn && nowMode.equals(Camera.Parameters.FLASH_MODE_AUTO)) 
     { 
      return true; 
     } 
     return false; 
    } 
    catch (Exception ex) 
    { 
     MyLog.e(mLOG_TAG, this.getClass().getSimpleName() + " error setting flash mode to: "+ value + " " + ex.toString()); 
    } 
} 

더 명확하게하기 위해 위 링크의 코드를 복사했습니다.

+0

정말로 내 문제와 내 문제가 서로 연결되어있는 것을 볼 수 없습니다. P –

+0

다음은 더 많은 설명입니다. 센서 API를 통해 Xperia Arc S의 광 센서에 액세스 할 수 없습니다. 하지만 센서를 제어하고 싶다면 플래시 API를 사용하여 Camera API를 통해 할 수 있습니다. 위에서 언급 한 링크에는 Camera API를 사용하여 Light 센서를 제어하는 ​​코드가 있습니다. – Anup

+0

우리가 똑같은 것을 생각하고 있는지 나는 모른다. :) 빛의 양을 확인하기 위해 광 센서를 사용하려고한다. 전화의 LED로 빛을 방출하지 않는 방 : –