Hi AD,
ich versuche gerade eine App zu schreiben, die auf einen bestimmten Schweelwert an meinem Light Sensor am LGP990 reagiert. (Soll der Sensor für ein Laser-Quest werden nur falls jemand fragt)
Aber ich schaffe es ums verrecken nicht den Lichtsensor anzusprechen(Scheint auf mehreren Geräten Probleme zu geben laut google HTC Magic, LG P990 und noch weitere HTC Geräte) ! Auf dem Galaxy S2 funktioniert dies aber. Das LG Optimus Speed besitzt auch einen solchen Senor, weil ich die Werte über den ALC Test im Hidden Menu sehe.
1.) Wie komm ich nur an den Sensor ran?
2.) Kann ich das ganze irgendwie noch schneller machen, da es schon noh sehr träge ist?
Hier mal der Code meiner App:
Java
package soma.de.Light;
import java.util.List;
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.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class LightSensorActivity extends Activity {
SensorManager mySensorManager;
Sensor myLightSensor;
TextView textLightSensorData;
TextView textLightSensor;
Button Start;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
textLightSensor = (TextView)findViewById(R.id.tvLight);
textLightSensorData = (TextView)findViewById(R.id.tvAcc);
mySensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
myLightSensor = mySensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
Start = (Button)findViewById(R.id.btStart);
Start.setOnClickListener(btListener);
List s = mySensorManager.getSensorList(Sensor.TYPE_ALL);
if (myLightSensor == null){
textLightSensor.setText("No Light Sensor!");
mySensorManager.registerListener(lightSensorEventListener,
myLightSensor,
SensorManager.SENSOR_DELAY_FASTEST);
}else{
textLightSensor.setText(myLightSensor.getName() + "\n " + myLightSensor.getResolution() );
mySensorManager.registerListener(lightSensorEventListener,
myLightSensor,
SensorManager.SENSOR_DELAY_FASTEST);
}
}
private OnClickListener btListener = new OnClickListener()
{
public void onClick(View v){
myLightSensor = mySensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
if (myLightSensor == null){
textLightSensor.setText("No Light Sensor!");
mySensorManager.registerListener(lightSensorEventListener,
myLightSensor,
SensorManager.SENSOR_DELAY_FASTEST);
}else{
textLightSensor.setText(myLightSensor.getName() + "\n " + myLightSensor.getResolution() );
mySensorManager.registerListener(lightSensorEventListener,
myLightSensor,
SensorManager.SENSOR_DELAY_FASTEST);
}
}
};
SensorEventListener lightSensorEventListener
= new SensorEventListener(){
@Override
public void onAccuracyChanged(Sensor arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onSensorChanged(SensorEvent arg0) {
// TODO Auto-generated method stub
if(arg0.sensor.getType()==Sensor.TYPE_LIGHT){
textLightSensorData.setText("Light Sensor Date:"
+ String.valueOf(arg0.values[0]));
}else if(arg0.sensor.getType()==Sensor.TYPE_PROXIMITY){
textLightSensorData.setText("Test "
+ String.valueOf(arg0.values[0]) +" " + String.valueOf(arg0.values[1]));
}
}};
}
Alles anzeigen
Danke euch für eure Hilfe!
Gruß Soma