2012-02-07 12 views
0

私は光センサーを使って簡単なAndroidアプリを開発しようとしています。残念ながら、私のSE Xperia Arc Sには光センサーがありますが、それを動作させることはできません。以下に示す簡単なコードはnullを返します。私はサービステストでライトセンサーをチェックしていました*#*#7378423#*#*とサービステスト - >アンビエントライトセンサーとそこで働いています。Xperia Arc S光センサー

戻るヌル:

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のライトセンサーをサポートしていません。カメラ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

ここではさらに説明しています。 Xperia Arc Sの光センサーはセンサーAPIからアクセスできません。しかし、あなたがセンサーを制御したい場合、あなたは、フラッシュAPIを使用して、カメラAPIを介して行うことができます。上記のリンクは、カメラAPIを使用して光センサーを制御するコードがあります。 – Anup

+0

私は同じことを考えているのかどうか分かりません:)私は光センサーを使って光の量を調べるようにしています。部屋の中で電話のLEDで発光しないようにしてください:) –