L'Obtention De Lumière, Capteur De Valeur
Donc je suis à la recherche d'un moyen d'obtenir la valeur actuelle du Capteur de luminosité (en Lux évidemment) sur un bouton de la presse. Voici le code que j'utilise pour mettre en œuvre le contrôle du capteur de lumière
public class SensorActivity extends Activity implements SensorEventListener
{
private final SensorManager mSensorManager;
private final Sensor mLight;
int minLux = 0;
int currentLux = 0;
int maxLux;
public SensorActivity()
{
mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
mLight = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
}
protected void onResume()
{
super.onResume();
mSensorManager.registerListener((SensorEventListener) this, mLight, SensorManager.SENSOR_DELAY_NORMAL);
}
protected void onPause()
{
super.onPause();
mSensorManager.unregisterListener((SensorListener) this);
}
public void onAccuracyChanged(Sensor sensor, int accuracy)
{
if(sensor.getType() == Sensor.TYPE_LIGHT)
{
}
}
public void onSensorChanged(SensorEvent event)
{
if( event.sensor.getType() == Sensor.TYPE_LIGHT)
{
}
}
}
J'ai aussi ce code sur le bouton pour appeler une fonction
<Button android:layout_width="122px" android:id="@+id/widget35" android:text="Start" android:layout_height="wrap_content" android:layout_x="112dp" android:layout_y="249dp" android:onClick="onButtonDown"></Button>
Comment puis-je obtenir le courant de valeur en lux, tandis que l'application est en cours d'exécution en arrière-plan, et comment puis-je obtenir et mémoriser la valeur en lux sur le bouton de la presse en int maxLux;
?
Vous devez vous connecter pour publier un commentaire.
Comme indiqué ici, il n'est pas possible d'obtenir directement le capteur de courant de valeur et, bien que certaines versions plus récentes d'Android va générer un onSensorChanged événement dès que l'auditeur est enregistrée (vous permettant d'obtenir une base de référence), les versions antérieures ne sont pas. La seule chose que vous pouvez vraiment faire est de l'espoir que l'utilisateur exécute une version plus récente d'Android ou que la modification de la valeur et puis retrouver la valeur en lux de l'événement.les valeurs de[0] à l'intérieur de onSensorChanged (par exemple) :
(Après un changement de maxLux et currentLux à flotteurs). Cela laisse ensuite la question de la récupération de la valeur actuelle basée sur un bouton de la presse, qui peut être fait en examinant la valeur de currentLux au moment où le bouton est enfoncé.
maxLux
sera une constante basé sur l'original de l'étalonnage (ce que le bouton de la presse est pour), puis la luminosité de l'écran change en fonction d'un pourcentage decurrentLux
demaxLux