Der Sensor in Android --- Lichtsensor

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).

Je suppose que tu aimes

Origine blog.csdn.net/lanrenxiaowen/article/details/108122011
conseillé
Classement