2012-02-07 86 views
0

我正在嘗試使用光傳感器開發簡單的Android應用程序。不幸的是,雖然我的SE Xperia Arc S確實有光線傳感器,但我無法使其工作。下面呈現的簡單代碼返回null。我正在使用*#*#7378423#*#*和服務測試 - >環境光線傳感器檢查服務測試中的光線傳感器,它正在那裏工作。Xperia Arc S光傳感器

返回NULL:

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

此代碼返回傳感器的名單,失光傳感器:

mySensorManager.getSensorList(Sensor.TYPE_ALL); 

我在市場上檢查光傳感器的應用程序,也不起作用。

電話信息:

LT18i的,Android版本:2.3.4,編譯:4.0.2.A.0.42

任何想法?

感謝您的幫助。

回答

0

Camera.Parameters.FLASH_MODE_TORCH replacement for Android 2.1

檢查上面的鏈接。我用它在Arc S上測試。它工作。

傳感器API不支持Xperia Arc S中的光傳感器。您需要使用Camera 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 – 2012-02-14 12:44:37

+0

這裏有更多解釋。無法通過傳感器API訪問Xperia Arc S上的光線傳感器。但是,如果你想控制傳感器,你可以通過Camera API,使用基於閃存的api來實現。上面提到的鏈接具有使用Camera API控制Light傳感器的代碼。 – Anup 2012-02-16 17:39:32

+0

我不知道我們是否在想同樣的事情:)我試圖使用光傳感器來檢查例如一個房間,不要通過電話的LED發光:) – 2012-02-18 22:37:41