0

下面提到的代码在 samasung Galaxy s(GB) 上完美运行,但我没有在 SE neo v(ics) 和 Tipo(ics) 上工作。这是索尼问题或 ics 问题。当启动应用程序启动并立即显示吐司“无光传感器!退出 -”。

import android.app.Activity;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;

public class LightsenseActivity extends Activity {

 ProgressBar lightMeter;
 TextView textMax, textReading;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        lightMeter = (ProgressBar)findViewById(R.id.lightmeter);
        textMax = (TextView)findViewById(R.id.max);
        textReading = (TextView)findViewById(R.id.reading);

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

        if (lightSensor == null){
        Toast.makeText(LightsenseActivity.this, 

           "No Light Sensor! quit-", 
           Toast.LENGTH_SHORT).show();
        }else{
       float max =  lightSensor.getMaximumRange();

         lightMeter.setMax((int)max);
         textMax.setText("Max Reading: " + String.valueOf(max));

         sensorManager.registerListener(lightSensorEventListener, 
           lightSensor, 
           SensorManager.SENSOR_DELAY_NORMAL);

        }
    }

    SensorEventListener lightSensorEventListener
    = new SensorEventListener(){

  @Override
  public void onAccuracyChanged(Sensor sensor, int accuracy) {
   // TODO Auto-generated method stub

  }

  @Override
  public void onSensorChanged(SensorEvent event) {
   // TODO Auto-generated method stub
   //if(event.sensor.getType()==Sensor.TYPE_LIGHT){

    float currentReading = event.values[0];
    { lightMeter.setProgress((int)currentReading);
    textReading.setText("Current Reading: " + String.valueOf(currentReading));
   }
  }

    };
}
4

1 回答 1

1

在 gsmarena (http://www.gsmarena.com/sony_ericsson_xperia_neo_v-4122.php) 和 Sony Xperia Tipo (http://www.gsmarena.com/sony_xperia_tipo-4718.php) 上为 SE Neo V 列出的唯一传感器是加速度计、接近度和指南针。

光传感器绝不是必需的传感器,因为它通常用于调整屏幕亮度。来自 Android 4.0 兼容性文档:

7.3.7. 光度计 设备实现可能包括光度计(即环境光传感器。)

您的应用将不得不处理没有光传感器的情况,或者您应该在 AndroidManifest.xml 中添加一个<uses-feature>for 。android.hardware.sensor.light

于 2012-10-14T14:34:40.870 回答