0

光センサーを使ったシンプルなAndroidアプリを開発しようとしています。残念ながら、私の SE Xperia Arc S には光センサーがありますが、動作させることができません。以下に示す単純なコードは null を返します。*#*#7378423#*#* と Service Test -> Ambient Light Sensor を使用して Service Test で光センサーをチェックしていましたが、そこで動作しています。

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

何か案は?

手伝ってくれてありがとう。

4

1 に答える 1

0

Camera.Parameters.FLASH_MODE_TORCH の 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());
    }
}

より明確にするために、上記のリンクからコードをコピーしただけです。

于 2012-02-13T20:01:08.637 に答える