Wenn es um den Lichtsensor geht, haben manche Leute das Gefühl, dass sie ihn nicht oft verwenden, aber der Lichtsensor, der vom Mobiltelefon selbst verwendet wird, um die Helligkeit des Mobiltelefons automatisch anzupassen, ist der Lichtsensor im Mobiltelefon. Ist das so? Funktion in Ihrem Mobiltelefon aktiviert?
kleine Einführung
Was zum Teufel ist ein Lichtsensor? Es wird verwendet, um die Intensität des Lichts um das Mobiltelefon herum zu erkennen. Die Einheit ist Lux und wird normalerweise auf dem Kopf des Mobiltelefons in der Nähe der Frontkamera platziert. Sie können auf Ihr Mobiltelefon schauen und Ihren Finger halten, um zu sehen, ob Die Helligkeit des Mobiltelefons wird gedimmt, das Licht Der Sensor und andere Sensorentwicklungsschritte sind gleich (es scheint ein solcher Prozess zu sein)
Entwicklungsprozess
1. Holen Sie sich das Sensor-Manager-Objekt
// 获取传感器管理者对象
SensorManager mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
2. Besorgen Sie sich das angegebene Sensorobjekt, hier ist der Lichtsensor
// 获取光线传感器对象
Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
3. Fügen Sie einen Listener hinzu, vorzugsweise in onResume()
sensorManager.registerListener(this,sensor,SensorManager.SENSOR_DELAY_NORMAL);
4. Ermitteln Sie den Wert der aktuellen Lichtintensität
float light = event.values[0];
5. Vergessen Sie nicht, die Registrierung aufzuheben, wenn Sie es nicht verwenden. Sie erhalten keine Sensor-Updates mehr
sensorManager.unregisterListener(this,sensor);
Vollständiger Code
public class LightActivity extends AppCompatActivity implements SensorEventListener {
private SensorManager sensorManager;
private Sensor sensor;
private TextView mTvLight;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_light);
mTvLight=findViewById(R.id.tv_light);
// 获取传感器管理者对象
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
// 获取光线传感器对象
sensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
}
@Override
protected void onResume() {
super.onResume();
//添加监听器
sensorManager.registerListener(this,sensor,SensorManager.SENSOR_DELAY_NORMAL);
}
@Override
protected void onPause() {
super.onPause();
if (sensorManager != null) {
//解除注册,不再接收任何传感器的更新。
sensorManager.unregisterListener(this,sensor);
}
}
@Override
public void onSensorChanged(SensorEvent event) {
float light = event.values[0];
StringBuffer buffer = new StringBuffer();
buffer.append("现在的光照强度:").append(light).append("lux");
mTvLight.setText(buffer);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
}
Weitere Informationen zur Verwendung von Mobiltelefonsensoren finden Sie unter Sensoren in Android (gesamt).