2

次のコードでは光センサーを使用していますが、event.value [0] の値を表示できません...「On SensorChanged」というメッセージだけでトーストが表示されます。また、テキストがテレビに設定されていません。

ここにコードがあります

    public void onSensorChanged(SensorEvent event) 
    {
    if( event.sensor.getType() == Sensor.TYPE_LIGHT)
    {
        tv.setText("value: " + event.values[0] + " lux" );   
        Toast.makeText(getApplicationContext(),"On SensorChanged"+ event.values[0],Toast.LENGTH_SHORT).show();
        Log.d("Sensor Changed", "onSensor Change :" + brightness);
    }

}
4

4 に答える 4

1

実際、 Galaxy Sに光センサー ハードウェアが搭載されています。
近接センシングは、光センサー デバイスによって行われます。詳細はこちら

光センサーを有効にして適切に使用していることを確認するには、 が有効な光センサーを返す
ことを確認します。getSensorList(TYPE_LIGHT)

その後、このリンクに示すように進みます。

于 2012-10-17T06:17:11.120 に答える
0

何も返さない理由に光センサーが含まれているとは思いません。それ以外の場合は、コードは問題ないようです。

http://www.gsmarena.com/samsung-phones-9.php

このリンクに従って、テストしているモデルを確認し、機能とセンサーで確認します

于 2012-10-17T05:39:11.927 に答える
0

今、私はセンサー値を取得します。しかし、問題はそれを System.SCREEN_BRIGHTNESS に割り当てる方法です。次のコードを使用しますが、割り当てることができません。明るさ設定で自動が有効になっている場合にのみ機能します。

以下はコードです

public void onSensorChanged(SensorEvent event) 
{
    if( event.sensor.getType() == Sensor.TYPE_LIGHT)
    {
        float currentLux = event.values[0];
        brightness=(int)event.values[0];
        brightbar.setProgress(brightness);
        tv2=(TextView)findViewById(R.id.textView2);
        tv2.setText("value:"+ currentLux+ " lux" );   
        System.putFloat(cResolver, System.SCREEN_BRIGHTNESS_MODE,currentLux);
        android.view.WindowManager.LayoutParams layoutpars = window.getAttributes();
        layoutpars.screenBrightness = currentLux;  
        window.setAttributes(layoutpars); 
        Log.d("Sensor Changed", "onSensor Change :" + currentLux);
    }

}
于 2012-10-17T08:24:19.970 に答える